【发布时间】:2018-04-28 00:13:20
【问题描述】:
我最近参与了制作基本游戏引擎的工作。我决定将我所有的中间件放到一个Externals 目录中,一个bash 脚本将我所有的中间件构建到Binaries 目录中的共享对象文件中。
在我的CmakeLists.txt 文件中,我可以将这些库链接到我的主可执行文件中,如下所示:
add_library (glfw SHARED IMPORTED)
set_target_properties (glfw PROPERTIES IMPORTED_LOCATION
${ENGINE_BINARIES_DIR}/Libraries/Shared/libglfw.so.3.2
)
...
target_link_libraries (Engine glfw)
但是,当我尝试在我的主文件中包含 GLFW/glfw3.h 时,它无法编译。这是有道理的,因为没有glfw3.h 文件;但是,将 glfw 包含到我的项目中的所有其他尝试都失败了。
TL ;博士
从现有共享对象库中包含标头的最佳方式是什么?是否可以在没有includes/glfw 目录的情况下实现这一目标,或者是否需要修改其代码/项目结构才能加载这些功能?
【问题讨论】:
标签: c++ cmake shared-libraries glfw