2015-04-12 2 views
0

У меня есть общая проблема, «include not found». В то время как я был с помощью командной строки для установки включает и библиотеки каталогов все было хорошо, Цитата:linking bullet include directory with cmake

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

, но мне нужно, чтобы сделать его работу с CMake, есть копия моего текущего CMake,

"ccmake"
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) 

, когда я делаю, я вижу:

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

так, я (с помощью командной строки) и CMake ожидают использовать/USR/включать/пулю в каталог. Но когда я «сделать», я получаю эту ошибку:

[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> 

Я не понимаю, почему командная строка г ++ и CMake не дает тот же результат.

ответ

1

Возможно, скрипт find_package для Bullet находит только каталог include, но не добавляет его в список include. Так что я хотел бы добавить его в явном виде:

include_directories(${BULLET_INCLUDE_DIR}) 
+1

Вы можете удалить «может быть» :) Я не думаю, что 'find_package' называет явно include_directories – Antonio

+0

я написал альтернативный ответ с предложением включить указать какую-то часть пути ('#include '), но со второй мыслью это не имеет особого смысла, поскольку [эти файлы содержат больше файлов] (http://bulletphysics.org/Bullet/BulletFull/ btBulletDynamicsCommon_8h.html), без этого спецификатора каталога. Таким образом, ответ Хэнка является единственным правильным. – Antonio

+0

thx hank, я вчера отказался из-за этой проблемы. Ожидание кого-нибудь, чтобы спасти меня! Ты сделал это! мой герой! PS для других людей: мне также необходимо было добавить библиотеки в способ компиляции –