使用cmake链接bullet include目录

时间:2015-04-12 12:38:53

标签: c++ linux cmake include-path bullet

我有一个常见问题,“包括未找到”。当我使用命令行设置包含和库目录时,一切都很好, 引用:

g++ src/B_engine.cc -lLinearMath -lBulletSoftBody -lBulletCollision -lBulletDynamics -I/usr/include/bullet -o a.out

但是我需要让它与cmake合作,有一份我目前的cmake副本,

cmake_minimum_required( VERSION 2.8 )
project( a.out )
set( SOURCES src/B_engine.cc )
set( EXECUTABLE_NAME a.out )
find_package( Bullet REQUIRED )
add_executable( ${EXECUTABLE_NAME} ${SOURCES} )
add_definitions(-std=c++11)

当我做“ccmake。”时,我看到了:

BULLET_INCLUDE_DIR /usr/include/bullet
CMAKE_BUILD_TYPE
CMAKE_INSTALL_PREFIX /usr/local

所以,我(使用命令行)和cmake期望使用/ usr / include / bullet作为目录。但是当我做“make”时,我收到了这个错误:

[100%]
Scanning dependencies of target a.out
Building CXX object CMakeFiles/a.out.dir/src/B_engine.cc.o
In file included from /home/user/test/src/B_engine.cc:2:0:/home/user/test/src/B_engine.hh:5:36: fatal error: btBulletDynamicsCommon.h: No such file or directory
 #include <btBulletDynamicsCommon.h>

我不明白为什么g ++命令行和cmake没有给出相同的结果。

1 个答案:

答案 0 :(得分:1)

也许Bullet的find_package脚本只能找到包含目录,但不会将其添加到包含列表中。 所以我明确地添加它:

include_directories(${BULLET_INCLUDE_DIR})