Как я даю CMake команду искать библиотеки, установленные MacPorts?

Косметическое веб-моделирование вовлечения ошибок в различном браузере, который конфигурации O/S, например, страницу выглядит хорошо в Windows и Mac в Firefox и IE, но на Mac в Safari что-то испорчено. Они иногда являются раздражающими, потому что они требуют такого внимания к деталям, и внесение изменения для фиксации Safari может повредить что-то в Firefox или IE, таким образом, нужно действовать осторожно и понять, что моделирование может быть рядом взломов для фиксации страницы после страницы. Я сказал бы, что это - мои самые противные, которые иногда просто не становятся фиксированными, поскольку они не просматриваются как важные.

35
задан David Holm 28 September 2009 в 15:49
поделиться

3 ответа

I added a toolchain file for "Darwin" which adds the necessary include and library paths. I was hoping for something a little more automatic but at least it solves the problem.

darwin.cmake:

SET(CMAKE_SYSTEM_NAME Darwin)

# Add MacPorts
INCLUDE_DIRECTORIES(/opt/local/include)
LINK_DIRECTORIES(/opt/local/lib)
15
ответ дан 27 November 2019 в 07:11
поделиться

CMake должен учитывать переменную среды DYLD_LIBRARY_PATH , которая является эквивалентом переменной среды LD_LIBRARY_PATH в Linux. Ваш DYLD_LIBRARY_PATH должен иметь правильный путь для поиска библиотек, установленных MacPorts.

6
ответ дан 27 November 2019 в 07:11
поделиться

Добавьте / opt / local / lib и любые другие возможные пути установки к набору путей, которые ищет cmake в вашем файле CMakeLists.txt:

set(CMAKE_LIBRARY_PATH ${CMAKE_LIBRARY_PATH} /opt/local/lib)

Это добавляет / opt / local / lib к набору путей, по которым cmake ищет библиотеки. Этот метод CMAKE_LIBRARY_PATH повлияет на все команды find_library после того, как вы установите переменную.

Для более хирургического подхода «библиотека за библиотекой» измените отдельные команды find_library:

find_library(Foo foo
    PATHS /opt/local/lib)

Обратите внимание, что это , а не жесткий код / ​​opt / local / lib как единственное место для поиска библиотека. Скорее, он просто добавляет / opt / local / lib к набору местоположений, в которых следует искать библиотеку. Я часто добавляю много таких путей, охватывающих места, наблюдаемые на всех машинах, о которых я знаю. См. документацию find_library для получения дополнительных вариантов по этой теме.

Вы также можете изменить CMAKE_INCLUDE_PATH , что влияет на поведение команд find_file () и find_path () .

33
ответ дан 27 November 2019 в 07:11
поделиться
Другие вопросы по тегам:

Похожие вопросы: