cmake的链接GLEW头文件
我想外部库添加到使用CMake的我的项目(V 3.10.1)cmake的链接GLEW头文件
我希望库生活在一个特定的目录,因为我喜欢保持清洁尽可能
我的项目结构看起来像
Project |
|-- main.cpp
|-- CMakeLists.txt (top lvl)
|
|-- libs/
|
| -- glew-1.13.0
| -- CMakeLists.txt (lib lvl)
热门拉特的CMakeLists.txt
cmake_minimum_required (VERSION 2.6) project (myproject)
add_executable(myproject main.cpp)
add_subdirectory (libs)
库LVL CMakeList.txt
### GLEW ### include_directories(
glew-1.13.0/include/
)
set(GLEW_SOURCE
glew-1.13.0/src/glew.c
)
set(GLEW_HEADERS
)
add_library(GLEW_1130 STATIC
${GLEW_SOURCE}
${GLEW_INCLUDE}
)
target_link_libraries(GLEW_1130
${OPENGL_LIBRARY}
${EXTRA_LIBS}
)
的main.cpp
#include <iostream> #include <GL/glew.h>
int main() {
std::cout << "Hello World" << std::endl;
return 0;
}
<GL/glew.h> headerfile not found
我是什么”在我丢失的情况下,这样我就可以使用GLEW头文件?
回答:
的include_directories
影响是不是全球:从libs/CMakeLists.txt
执行,但不会对顶级CMakeLists.txt
影响。
您可以 “附加” 包括目录库目标:
# In libs/CMakeLists.txt target_include_directories(GLEW_1130 PUBLIC glew-1.13.0/include/)
所以futher与该库链接为目标:
# In CMakeLists.txt target_link_libraries(myproject GLEW_1130)
会自动传播它包括目录可执行文件。
回答:
请勿将add_subdirectory
第三方投影到您自己的构建系统中,否则会污染您的配置。这里是一个合理的方法是在系统上安装GLEW,并使用find_package
,以它作为项目的一部分:
cmake_minimum_required (VERSION 2.6) project (myproject)
find_package(glew 1.13.0)
add_executable(myproject main.cpp)
target_link_libraries(myproject GLEW::glew)
以上是 cmake的链接GLEW头文件 的全部内容, 来源链接: utcz.com/qa/265785.html