gfw3 OSX连接错误
CMake, GLFW3 OSX linking error
我已经挣扎了一段时间,现在链接GLFW库在我的简单c++项目在CLion。我已经研究了存在的问题和解决方案,但它们似乎对我的情况没有帮助。我的CMakeLists文件如下所示:
cmake_minimum_required(VERSION 3.6)
project(TestGame)
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -std=c++14 -v")
find_library(carbon_lib Carbon)
find_library(cocoa_lib Cocoa)
find_library(iokit_lib IOKit)
find_library(corevideo_lib CoreVideo)
find_library(opengl_lib OpenGL)
find_library(corefoundation_lib CoreFoundation)
set(frameworks
${carbon_lib}
${cocoa_lib}
${iokit_lib}
${corevideo_lib}
${opengl_lib}
${corefoundation_lib}
)
file(GLOB sources
"include/*.hpp"
"src/*.cpp"
"src/application/*.cpp"
"src/controlling/*.cpp"
"src/helper/*.cpp"
"src/render/*.cpp"
"src/texturing/*.cpp"
"src/translations/*.cpp"
"test/*.cpp"
)
find_package(GLEW REQUIRED)
find_package(GLFW3 REQUIRED)
find_package(SDL2 REQUIRED)
find_package(GLM REQUIRED)
find_package(SOIL REQUIRED)
include_directories(${GLEW_INCLUDE_DIRS} ${GLFW_INCLUDE_DIR} ${GLM_INCLUDE_DIR} ${SDL2_INCLUDE_DIR} ${SOIL_INCLUDE_DIRS} ${GLM_INCLUDE_DIRS})
add_executable(GameMain ${sources})
target_link_libraries(GameMain ${GLEW_LIBRARIES} ${GLFW_LIBRARIES} ${GLM_LIBRARIES} ${SDL2_LIBRARY} ${SOIL_LIBRARIES} ${frameworks})
我有GLFW3和GLFW2(显然v2是Cocoa需要的,我不知道为什么)使用brew安装(brew安装GLFW2或brew安装GLFW3 - with -build-bottle -static它不工作,因为内部cmake错误),也尝试了从最新的源代码手动编译GLFW。
值得注意的是,我最近开始学习关于c++/CMake/CLion的东西,所以我可能会忘记一些重要的东西在这里-不要犹豫,要求更多的信息,所以我可以添加这些。
值得注意的是,在Sierra OSX(目前运行最新测试版)更新之前,我的应用程序运行得很好,没有链接器错误。链接器错误如下:
Undefined symbols for architecture x86_64:
"_glfwCreateWindow", referenced from:
Application::Application(char const*, int, int) in Application.cpp.o
"_glfwMakeContextCurrent", referenced from:
Application::Application(char const*, int, int) in Application.cpp.o
"_glfwWindowHint", referenced from:
Application::Application(char const*, int, int) in Application.cpp.o
"_glfwWindowShouldClose", referenced from:
Application::run() in Application.cpp.o
,这些与创建窗口的主入口文件有关。在包含目录时,CLion不建议省略任何内容。我尝试了/没有列出的所有这些框架,找到了一个解决方案,其中包括Cocoa/IOKit/CoreVideo/OpenGL,以使GLFW3工作。还尝试包括Carbon/CoreFoundation,因为一些解决方案是关于这些。
http://www.glfw.org/docs/latest/build_guide.html#build_link_cmake_package
你需要添加:
target_link_libraries(LearnGLSL ..any other libraries... glfw)
相关文章:
- 连接 dockerized 模型和 dockerized 数据库时出现"无法 SQLConnect"错误
- 使用 bfs 解决连接组件问题时得到错误的答案
- 如何修复valgrind启动时的致命错误(与libc6-dbg和libc6-dbg:i386连接)
- C++应用程序 MySQL odbc 数据库连接错误:在引发"otl_tmpl_exception<>"实例后终止调用
- 套接字连接"Operation not permitted"错误,甚至使用升压/平发器根.cpp
- CMake 错误"源似乎不包含 CMakeLists.txt",路径/库连接问题
- 当客户端在 write() 期间终止连接时,由对等套接字错误重置连接
- 从 Linux OMI (omicli) 到 Windows WMI 的连接失败,并出现与 DMTF 相关的错误
- C++ 中连接 4 游戏的输入逻辑错误
- Eclipse:错误:初始化模式失败(无法连接到目标)
- C++所有 AT 命令的短信返回错误 |PC<->通过蓝牙和winsocket的移动连接
- 如何修复数据库连接的C 程序运行时间错误(0xc0000005)
- Mongocxx 连接错误
- 连接到套接字失败 - 错误编号 88 (CPP)
- 尝试重新连接到服务器时获取错误提升 asio 连接超时
- 字符和 int 连接何时会导致 seg 错误?
- 在 ZeroMQ 中绑定订阅者套接字并连接发布者套接字会在代码运行时给出错误.为什么
- JNI - WMI 连接错误
- boost :: Asio连接错误的界面
- 如何在两个设备之间与TCP通信时修复错误"连接被拒绝"