$ (shell [foo]) в windows

1

У меня есть make-файл (файл под названием «Makefile», который запускает cmake, я верю), и большинство «примеров», которые я вижу, это всего лишь одна строка (а остальные, кажется, вещи, которые я не делаю » пока не поймешь, а потом эту самую одну строчку.

include $(shell rospack find mk)/cmake.mk

(в терминале rospack find [package] возвращает путь к указанному пакету, и cmake.mk, очевидно, является файлом, который он хочет включить)

Моя проблема заключается в том, что это (по крайней мере, мне) написано для использования в системе Linux (которая в основном полностью ros, программа, с которой я работаю, был), и в Windows это, кажется, просто попробовать быть

include /cmake.mk

(что неудивительно, что не работает)

в основном мне нужно знать, как сделать то же самое в Windows, как правило, «динамическим» способом, так как это вызовет больше проблем в будущем, если я получу эту работу путем жесткого кодирования пути к каталогу, а затем он ломается, потому что его не установлены должным образом некоторое время в будущем)

Ладно, я здесь немного не в себе ... но мне действительно нужно, чтобы что-то работало как можно скорее, так что у меня есть немного свободы, чтобы узнать больше за неделю до Рождества.

так что я думаю, что если это невозможно / особенно сложно, то способ жесткого кодирования будет временным

Я пытался

include C:\[directory]\cmake.mk

но, похоже, есть проблемы с ':'

Reian_West
источник

Ответы:

0

Во-первых, убедитесь, что просто говорит rospack find mkв терминале приглашение; Возможно, вам придется сначала настроить ваш %PATH%.

Затем, давайте заменим эту includeстроку чем-то, что использует cmakeмежплатформенную поддержку исполняемых файлов:

execute_process(COMMAND ${CMAKE_COMMAND} -E rospack find mk OUTPUT_VARIABLE ROSMKDIR)
include ${ROSMKDIR}/cmake.mk

(Шляпа подсказка к этому ответу я нашел на stackoverflow)

Даниэль Мартин
источник