首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >cmake:包含根目录?

cmake:包含根目录?
EN

Stack Overflow用户
提问于 2018-01-29 01:01:11
回答 1查看 2.8K关注 0票数 2

我正在尝试为我正在做的一个项目设置cmake,但是我有一个问题,我目前还不能解决。我的项目具有以下文件夹结构:

代码语言:javascript
复制
MotorEngine (root dir)
| CMakeLists.txt
| ThirdParty
|-| SDL2
|-|-| include (contains all header files for SDL2)
|-|-| lib
|-|-|-| x64
|-|-|-|-| SDL2.lib (the library file I need to link with)
| Source
|-| CMakeLists.txt
|-| main.cpp

根CMakeLists.txt文件:

代码语言:javascript
复制
cmake_minimum_required(VERSION 2.6)
project(MotorEngine)

# Set an output directory for our binaries
set(BIN_DIR ${CMAKE_CURRENT_SOURCE_DIR}/Binaries)

set(CMAKE_RUNTIME_OUTPUT_DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR}/Binaries)
set(THIRDPARTY_PATH ${CMAKE_CURRENT_SOURCE_DIR}/ThirdParty)

# Include SDL2
include_directories(${THIRDPARTY_PATH}/SDL2/include)

# Add the engine + third party subdirectory
add_subdirectory(Source)

来源的CMakeLists.txt:

代码语言:javascript
复制
project(MotorEngine)
add_executable(MotorEngine main.cpp)
target_link_libraries(MotorEngine ${THIRDPARTY_PATH}/SDL2/lib/x64/SDL2.lib)

现在,我想实现以下目标,在我想要编写的main.cpp中

代码语言:javascript
复制
#include "SDL2/include/SDL2.h"

但目前我不得不写

代码语言:javascript
复制
#include "SDL2.h"

因为稍后会有同名的文件,所以我需要在它们的文件夹中区分它们。因此,最简单的方法是添加"ThirdParty“文件夹作为根目录,这样我就可以使用与此相关的#include,但要做的是

代码语言:javascript
复制
include_directories(${THIRDPARTY_PATH})

不起作用。有什么想法吗?谢谢!

EN

回答 1

Stack Overflow用户

发布于 2018-01-29 02:14:23

k.v.的帮助下,我能够解决这个问题。我需要在源目录的CMakeLists.txt中添加以下内容:

代码语言:javascript
复制
target_include_directories(MotorEngine PUBLIC ${THIRDPARTY_PATH})
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/48488943

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档