2017-05-06 115 views
0

我正在阅读this tutorial on OpenGL。我收到编译错误如下:无法编译GLFW,未定义符号

Undefined symbols for architecture x86_64: 
    "_glfwInit", referenced from: 
     _main in main.cpp.o 
    "_glfwTerminate", referenced from: 
     _main in main.cpp.o 
ld: symbol(s) not found for architecture x86_64 
clang: error: linker command failed with exit code 1 (use -v to see invocation) 
make[3]: *** [OpenGL] Error 1 
make[2]: *** [CMakeFiles/OpenGL.dir/all] Error 2 
make[1]: *** [CMakeFiles/OpenGL.dir/rule] Error 2 
make: *** [OpenGL] Error 2 

现在,我将列出我的当前设置,与我的main.cpp

#include <iostream> 
#include <GLFW/glfw3.h> 
#include <thread> 

int main() { 
    glfwInit(); 
    std::this_thread::sleep_for(std::chrono::seconds(1)); 
    glfwTerminate(); 
    return 0; 
} 

这里开始我的CMake的文件

cmake_minimum_required(VERSION 3.7) 
project(OpenGL) 

set(CMAKE_CXX_STANDARD 11) 

set(SOURCE_FILES main.cpp) 
add_executable(OpenGL ${SOURCE_FILES}) 

而且最后我的命令行参数:

-lglfw -framework Cocoa -framework OpenGL - 
framework IOKit -framework CoreVideo 

我使用CLion,我相信我已经正确编译它。我只是试图弄到一个空白的窗口。

回答

1

如果您使用CMake,为什么要在命令行上指定库?将target_link_libraries指令纳入您的CMakeLists.txt

相关问题