Как решить проблемы с 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")

Тем не менее, почему я должен делать это вручную?


Я уже пробовал много разных способов его установки:

Что я сделал до сих пор:

  1. Скачайте cmocka отсюда: здесь. Версия 1.0.

  2. tar xvf cmocka-1.0.1.tar.xz

  3. cd cmocka-1.0.1, mkdir build а также cd build

  4. sudo cmake ..
    Я получаю сообщение вот так:

- Настройка выполнена

CMake Предупреждение (dev):

Политика CMP0042 не установлена: MACOSX_RPATH включен по умолчанию. Запустите "cmake --help-policy CMP0042" для получения подробной информации о политике. Используйте команду cmake_policy, чтобы установить политику и подавить это предупреждение.

MACOSX_RPATH не указан для следующих целей:

cmocka_shared

Это предупреждение для разработчиков проектов. Используйте -Wno-dev, чтобы подавить его.

Вопрос № 1: Как я могу установить rpath чтобы не было предупреждений, подобных приведенному выше?

  1. Судо make

  2. Судо make install

  3. 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 библиотека не может быть найдена?


Дополнительные примечания:

  1. Я пробовал бегать

    $ export LD_LIBRARY_PATH=/usr/local/lib:$LD_LIBRARY_PATH
    

но это не помогло. Я думаю, что это решение для Linux, а не Mac.

  1. Я пытался узнать что-то о RAPTH на Mac в cmake из их официальной документации здесь: http://www.cmake.org/Wiki/CMake_RPATH_handling. Однако я очень мало понимал и не смог найти решение своей проблемы.

  2. Я пытался установить cmocka с помощью brew но я получил тот же результат.

  3. Более того, я прочитал много вопросов в SO о RPATH, связывая и cmocka, но я также не смог найти подходящего решения. Тем не менее, вот список связанных тем:

  4. Я бегал 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")
Другие вопросы по тегам