如何在 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中使用?

如何在 Ubuntu 中使用 cmake 设置 qt4?

如何设置正确的 Ruby 版本以在 Aptana 3 中与我的 Rails 5 项目一起使用?

如何正确设置 vim 以在 utf-8 中进行编辑

如何强制 cmake 在没有完整路径的情况下使用 cl.exe?

如何在构建之前使CMake运行python脚本,以便为我的项目生成文件以在构建中使用?