У меня есть общая проблема, «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 не дает тот же результат.
Вы можете удалить «может быть» :) Я не думаю, что 'find_package' называет явно include_directories – Antonio
я написал альтернативный ответ с предложением включить указать какую-то часть пути ('#include'), но со второй мыслью это не имеет особого смысла, поскольку [эти файлы содержат больше файлов] (http://bulletphysics.org/Bullet/BulletFull/ btBulletDynamicsCommon_8h.html), без этого спецификатора каталога. Таким образом, ответ Хэнка является единственным правильным. –
Antonio
thx hank, я вчера отказался из-за этой проблемы. Ожидание кого-нибудь, чтобы спасти меня! Ты сделал это! мой герой! PS для других людей: мне также необходимо было добавить библиотеки в способ компиляции –