C++ 找不到GLFW函数
我试着在Ubuntu 16.04 x86_64上编译一个使用GLFW3库的程序。我安装了C++ 找不到GLFW函数,c++,cmake,ubuntu-16.04,glfw,C++,Cmake,Ubuntu 16.04,Glfw,我试着在Ubuntu 16.04 x86_64上编译一个使用GLFW3库的程序。我安装了libglfw3和libglfw3 dev软件包。接下来,我写了CMakeLists.txt: 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)
libglfw3
和libglfw3 dev
软件包。接下来,我写了CMakeLists.txt
:
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;
}
我做错了什么?为什么找不到GLFW3?在CMake中与库链接的本机方式是:
请注意,这仅在GL和其他LIB安装到编译器和链接器已知的默认位置时才起作用。否则最好使用和其他
find_package()
调用,如@tambre所述。您链接到了GLEW库吗?我认为这个字符串集(CMAKE_EXE_LINKER_FLAGS-lglfw)
必须链接到这个库,不是吗?只是我只学了CMake。我在Windows上使用VisualStudio项目系统及其编译器。您在Ubuntu上编译了GLFW库,但您试图在Windows VisualStudio中运行程序?不,我说我从来没有在Linux上使用CMAKER生成MaCelScript生成C++程序。所以,我现在学习它,并认为这样我就可以链接这个库。我如何链接它?我尝试从存储库克隆此库并编译。链接它就像一个静态库,但它也给出了同样的错误。谢谢!我试试这个解决办法。
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
cmake_minimum_required (VERSION 2.6)
project (Test)
add_executable(Test src/main.cpp)
target_link_libraries(Test GL GLEW glfw)