我有一个名为“Makefile”的文件(我相信它是由 cmake 运行的),而且我能看到的大部分“示例”文件都只有一行(其余的似乎是我“还”不理解的东西,然后是同样的一行。
include $(shell rospack find mk)/cmake.mk
(在终端中 rospack find [package] 返回所述包的路径,并且 cmake.mk 显然是它想要包含的文件)
我的问题是,这似乎(至少对我来说)是为在 Linux 系统上使用而编写的(基本上整个 ros,我正在使用的程序,都是在 Linux 系统上使用),而在 Windows 中,这似乎只是试图
include /cmake.mk
(不出所料,它不起作用)
基本上我需要知道如何在 Windows 中做同样的事情,通常以“动态”的方式,因为如果我通过硬编码目录路径来实现这个功能,它只会导致更多的问题,然后它会因为在将来的某个时间没有正确设置而中断)
好吧,我在这里有点力不从心...但我真的需要尽快让一些东西发挥作用,这样我才能在圣诞节休假的一周里有一点余地去学习更多的东西。
所以我想如果这是不可能的/特别困难,那么硬编码的方法将是一种权宜之计
我试过
include C:\[directory]\cmake.mk
但似乎“:”有问题
答案1
首先,验证rospack find mk
在终端提示符下简单地说是否有效;您可能需要先调整您的%PATH%
。
然后,让我们用使用跨平台可执行支持的include
内容替换此行:cmake
execute_process(COMMAND ${CMAKE_COMMAND} -E rospack find mk OUTPUT_VARIABLE ROSMKDIR)
include ${ROSMKDIR}/cmake.mk
(向这个答案我在 stackoverflow 上发现)