cmake:包含目录根目录
cmake: Include directories root?
我正在尝试为我正在处理的项目设置 cmake,但我有一个目前无法解决的问题。我的项目具有以下文件夹结构:
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 文件:
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:
project(MotorEngine)
add_executable(MotorEngine main.cpp)
target_link_libraries(MotorEngine ${THIRDPARTY_PATH}/SDL2/lib/x64/SDL2.lib)
现在,我想实现以下几点,大体上.cpp我想写
#include "SDL2/include/SDL2.h"
但目前我必须写
#include "SDL2.h"
由于稍后会有同名的文件,我需要在它们的文件夹中区分它们。所以最简单的方法是将"第三方"文件夹添加为根目录,这样我就可以使用它 #include,但是
include_directories(${THIRDPARTY_PATH})
不起作用。有什么想法吗?谢谢!
在 k.v. 的帮助下。我能够解决这个问题。我需要在 CMakeList 中添加以下内容.txt在源目录中:
target_include_directories(MotorEngine PUBLIC ${THIRDPARTY_PATH})
相关文章:
- 如何导出包含具有"std::unique_ptr"值的"std::map"属性的
- 从包含m行的文件中提取n行,必要时(惰性地)重复该文件
- 编译包含字符串的代码时遇到问题
- c++库的公共头文件中应该包含什么
- 将包含C样式数组的对象初始化为成员变量(C++)
- 是否需要删除包含对象的"pair"?
- 函数何时会在c++中包含stack_Unwind_Resume调用
- 如何将包含epoch时间的十六进制字符串转换为time_t
- 使用mongocxx驱动程序时包含头文件问题
- 如何在h文件中包含.o对象文件
- 在混合代码库中将C转换为C++时出现许多包含错误
- VS2017,C++包含目录与附加包含目录,子文件夹包含失败-但为什么
- cmath抛出错误C2062、C2059、C2143和C2447.cmath包含在矢量文件中
- 为什么您需要C++头文件的包含保护
- C++将包含的库 (ref DLL) 从根目录更改为另一个位置
- 将根目录添加为包含目录
- cmake:包含目录根目录
- 如何从 qmake 中的包含路径中删除项目的根目录
- 如何从根目录中包含stdafx.h
- 如何在不将glew32.dll放入系统根目录的情况下包含它