-1
我尝试编译一个在Ubuntu 16.04 x86_64上使用GLFW3库的程序。我安装了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?在CMake的与库链接
你链接到GLEW库吗? – Zebrafish
我以为这个字符串'set(CMAKE_EXE_LINKER_FLAGS -lglfw)'必须链接这个库,它不是?只是我只学习CMake。我在Windows上使用了Visual Studio项目系统及其编译器。 –
您在Ubuntu上编译了GLFW库,但您试图在Windows Visual Studio中运行该程序? – Zebrafish