Как решить проблемы с RPATH в Mac OS X при установке cmocka?
Я пытаюсь установить и запустить cmocka
библиотека для модульного тестирования на Mac OSX Yosemite 10.10.3, но у меня есть некоторые проблемы с RPATH
Настройки.
Обновить:
Благодаря @baf я смог включить cmocka.h
в моем CMakeLists.txt вручную, как это:
set(CMAKE_C_FLAGS_DEBUG "-I/usr/local/include/cmocka.h")
Тем не менее, почему я должен делать это вручную?
Я уже пробовал много разных способов его установки:
Что я сделал до сих пор:
Скачайте cmocka отсюда: здесь. Версия 1.0.
tar xvf cmocka-1.0.1.tar.xz
cd cmocka-1.0.1
,mkdir build
а такжеcd build
sudo cmake ..
Я получаю сообщение вот так:
- Настройка выполнена
CMake Предупреждение (dev):
Политика CMP0042 не установлена: MACOSX_RPATH включен по умолчанию. Запустите "cmake --help-policy CMP0042" для получения подробной информации о политике. Используйте команду cmake_policy, чтобы установить политику и подавить это предупреждение.
MACOSX_RPATH не указан для следующих целей:
cmocka_shared
Это предупреждение для разработчиков проектов. Используйте -Wno-dev, чтобы подавить его.
Вопрос № 1: Как я могу установить rpath
чтобы не было предупреждений, подобных приведенному выше?
Судо
make
Судо
make install
cmocka
должен быть установлен сейчас, верно?
Бег cmake
для моей программы, которая использует cmocka
библиотека.
Так что теперь я бегу cmake
для моей программы и моей главной CMakeList.txt
В файле есть такие строки:
find_library (CMOCKA cmocka)
if (NOT CMOCKA)
message (WARNING "Cmocka library not found.")
endif (NOT CMOCKA)
Но предупреждение не появляется на этом этапе, поэтому я считаю, что find_libarary(CMOCKA cmocka)
успешно расположен cmocka
на моем компьютере.
Бег make
для моей программы.
Во время бега make
Я получаю ошибку, как это:
fatal error:<br> 'cmocka.h' file not found<br> #include <cmocka.h> ^ 1 error generated.
Так что я думаю, что cmocka
не может быть найден...
Вопрос № 2: почему cmocka
библиотека не может быть найдена?
Дополнительные примечания:
Я пробовал бегать
$ export LD_LIBRARY_PATH=/usr/local/lib:$LD_LIBRARY_PATH
но это не помогло. Я думаю, что это решение для Linux, а не Mac.
Я пытался узнать что-то о
RAPTH
на Mac вcmake
из их официальной документации здесь: http://www.cmake.org/Wiki/CMake_RPATH_handling. Однако я очень мало понимал и не смог найти решение своей проблемы.Я пытался установить
cmocka
с помощьюbrew
но я получил тот же результат.Более того, я прочитал много вопросов в SO о
RPATH
, связывая иcmocka
, но я также не смог найти подходящего решения. Тем не менее, вот список связанных тем:Я бегал
otool -L cmocka
, Вот что я получил:error: /Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin/otool: can't open file: cmocka (No such file or directory)
1 ответ
Я смог успешно скомпилировать свою программу (спасибо baf), когда я добавил -I/usr/local/include
флаг для моих флагов отладки:
set(CMAKE_C_FLAGS_DEBUG "-std=gnu99 -Wall -pedantic -g -I/usr/local/include/cmocka.h")