Я пытаюсь скомпилировать программу, которая использует библиотеку GLFW3 на Ubuntu 16.04 x86_64. Я установил libglfw3
и libglfw3-dev
. Затем я написал CMakeLists.txt
:Функции GLFW не найдены
cmake_minimum_required (VERSION 2.6)
project (Test)
set (CMAKE_CXX_FLAGS "-lGL -lGLEW")
set (CMAKE_EXE_LINKER_FLAGS -lglfw)
add_executable(Test src/main.cpp)
И main.cpp:
#include <stdio.h>
#include <stdlib.h>
#include <GL/glew.h>
#include <GLFW/glfw3.h>
int main() {
if (!glfwInit()) {
return -1;
}
glfwTerminate();
return 0;
}
Но я получаю сообщение об ошибке из make
команды:
main.cpp:(.text+0x5): undefined reference to `glfwInit'
main.cpp:(.text+0x1a): undefined reference to `glfwTerminate'
collect2: error: ld returned 1 exit status
CMakeFiles/Test.dir/build.make:94: recipe for target 'Test' failed
make[2]: *** [Test] Error 1
CMakeFiles/Makefile2:67: recipe for target 'CMakeFiles/Test.dir/all' failed
make[1]: *** [CMakeFiles/Test.dir/all] Error 2
Makefile:83: recipe for target 'all' failed
make: *** [all] Error 2
Что я делаю неправильно? Почему он не может найти GLFW3?
Вы ссылаетесь на библиотеку GLEW? – Zebrafish
Я думал, что эта строка 'set (CMAKE_EXE_LINKER_FLAGS -lglfw)' должна связывать эту библиотеку, это не так? Просто я узнаю только CMake. Я использовал проектную систему Visual Studio и ее компилятор в Windows. –
Вы собрали библиотеку GLFW на Ubuntu, но пытаетесь запустить программу в Windows Visual Studio? – Zebrafish