繁体   English   中英

Gnu在Windows 7 64bit上进行制作?

[英]Gnu make on Windows 7 64bit?

我正在从Windows-32 XP迁移到Windows 7 64bit,并且我的项目构建存在问题。 错误出现在第一步-创建目录时。 我尝试了32位和64位MinGW和MSYS品牌。 似乎没有人不能调用md命令。 这是我为定位问题而创建的非常简单的Makefile:

all:
md C:\_test\trunk\build\win32

MinGW( mingw-w64的工具链针对Win64 )使:

C:\_tmp>C:\mingw64\bin\mingw32-make.exe
md C:\_test\trunk\build\win32
process_begin: CreateProcess(NULL, md C:\_test\trunk\build\win32, ...) failed.
make (e=2): The system cannot find the file specified.
Makefile:2: recipe for target 'all' failed
mingw32-make: *** [all] Error 2

MSYS( 64bit )使:

C:_tmp>C:\mingw64\msys\bin\make.exe
md C:\_test\trunk\build\win32
make.exe": md: Command not found
make.exe": *** [all] Error 127

从命令行运行同一命令没有问题:

md C:\_test\trunk\build\win32

有人可以推荐任何解决方案吗? 谢谢。

通过使用内置命令(它们都以&开头),可以在makepp中解决此问题:

all:
            &mkdir -p C:/_test/trunk/build/win32

尽管很认真,但这可能不是您唯一的问题。 看来您的PATH没有通过。 我认为make不会吞下它,可能它已经在Shell的设置中消失了。

但是我想知道您是否正在使用MinGW Shell,因为那样您就应该使用Unix路径语法,就像我在上面的Makefile代码段中所做的那样。 即使在{command,cmd}。{com,exe}中也仅在调用exe时需要反斜杠。 为了使其易于移植,makepp提供了变量$/ ,它是机器的正确斜杠:

foo/bar:
            path$/to$/my$/exe some/arg

makepp还有更多。 除了完成GNU make几乎所有的工作外,还有很多有用的事情,甚至可以使用一些Perl编程来扩展makefile。

当PATH变量具有带括号的路径时,似乎在Windows 7 64位上GNU make感到困惑。 解决方法是指定命令的完整路径,并通过外壳程序调用内置命令:

MKDIR := C:\Windows\System32\cmd.exe /C MKDIR

all:
    $(MKDIR) C:\_test\trunk\build\win32

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM