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

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

1 ответ1

0

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

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

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

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

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .