Windows 中的 $(shell [foo])

Windows 中的 $(shell [foo])

我有一个名为“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 上发现)

相关内容