如何正确使用Cmake中的标题路径在我的项目中构建Box2D

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了如何正确使用Cmake中的标题路径在我的项目中构建Box2D相关的知识,希望对你有一定的参考价值。

试图建立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")并指定所有可能的标头和源,但我仍然无法构建它。

答案

<project_root_folder>/CMakeLists.txt,您可以执行以下操作:

include_directories(${CMAKE_CURRENT_SOURCE_DIR})

这将确保相对于<project_root_folder>找到标题

以上是关于如何正确使用Cmake中的标题路径在我的项目中构建Box2D的主要内容,如果未能解决你的问题,请参考以下文章

如何在 CMake GUI 中显示 FooConfig.cmake 文件中的 CMake 变量?

如何正确地将库与 cmake 链接?

如何在CMAKE和CLION中的每次构建后运行复制脚本? [重复]

CMake:如何避免 HDF5 系统和 conda 安装中的不匹配?

如何构建 CMake 项目

如何在我的 cmake 项目中包含另一个 cmake 项目的头文件?