【问题标题】:Trouble compiling GLFW, undefined symbols编译 GLFW 时遇到问题,未定义的符号
【发布时间】:2017-05-06 06:11:00
【问题描述】:

我目前正在阅读this tutorial on OpenGL。我收到如下编译错误:

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,我相信我已经正确编译了它。我只是想得到一个空白窗口。

【问题讨论】:

    标签: c++ macos opengl cmake clion


    【解决方案1】:

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

    【讨论】:

      猜你喜欢
      • 2015-10-10
      • 2013-09-16
      • 1970-01-01
      • 2019-06-07
      • 1970-01-01
      • 2013-03-07
      • 2015-05-23
      • 2016-11-18
      相关资源
      最近更新 更多