如何在 Cmake 中正确设置标题路径以在我的项目中构建 Box2D
Posted
技术标签:
【中文标题】如何在 Cmake 中正确设置标题路径以在我的项目中构建 Box2D【英文标题】:How to correctly for header paths in Cmake to build Box2D inside my project 【发布时间】:2018-08-04 16:25:19 【问题描述】:尝试构建Box2D。它使用 premake 作为构建系统,但我想将其更改为 CMake,以便与我的程序一起编译。
它的主要标题是$project_root_folder_here/Box2D/Box2D.h
。该文件还包括一堆其他带有完整路径的标头,例如#include "Box2D/Common/b2Settings.h"
和#include "Box2D/Common/b2Draw.h"
。所有 Box2D 文件都通过完整路径包含相应的标头。
我的问题是我不知道如何正确设置 CMakeLists.txt 以导入 Box2D 源而不更改其文件(#include
路径)以反映我的项目文件夹结构,如下所示:
project_root_folder
-> Box2D/
---> Common/
-----> ...
---> Collision/
-----> ...
---> Dynamics/
-----> ...
---> Box2D.h
-> MySources/
---> some_header.h
---> some_source.cpp
---> main.cpp
-> CMakeLists.txt
-> Build/
我尝试设置 include_directories("Box2D")
并指定所有可能的标头和源,但我仍然无法构建它。
【问题讨论】:
在 github 中测试这个简单的项目。它有每个模块的目录,我认为它可以用于在另一个目录中分离听者和 cpp 文件:github.com/panahiehsancom/CMakeTree 【参考方案1】:在<project_root_folder>/CMakeLists.txt
中,您可以执行以下操作:
include_directories($CMAKE_CURRENT_SOURCE_DIR)
这将确保可以相对于<project_root_folder>
找到标头
【讨论】:
以上是关于如何在 Cmake 中正确设置标题路径以在我的项目中构建 Box2D的主要内容,如果未能解决你的问题,请参考以下文章
如何设置[ZeroMQ]以在Visual Studio 2015 Enterprise中使用?
如何设置正确的 Ruby 版本以在 Aptana 3 中与我的 Rails 5 项目一起使用?