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

回到顶部