我正在使用(有点过时的)微软版本的nmake,它通常与visual studio 6.0一起打包.(如果有更新的nmake的相关答案 - 请告诉我,我可能会考虑升级).
我希望改变现有的makefile,这样如果它与nmake dpndfull目标一起运行它就不会包含依赖列表,这应该构建依赖列表.
使用GNU make我会测试是否dpndfull存在MAKECMDGOALS,如果存在,我将不会包含(可能不存在)依赖列表.
有关如何使用nmake找到当前制作目标的任何想法?
我正在尝试使用nmake来构建libfcg(http://www.fastcgi.com/),但是我收到以下错误:
..\include\fcgios.h(23) : fatal error C1083: Cannot open include file: 'windows.h': No such file or directory
Run Code Online (Sandbox Code Playgroud)
我安装了Widows SDK,Windows.h文件存在于此目录中:
C:\Program Files\Microsoft SDKs\Windows\v7.0A\Include
Run Code Online (Sandbox Code Playgroud)
如何将其指定为包含目录?
几个星期前我开始使用Qt,我真的非常喜欢它.我现在需要在我的应用程序中包含图形,经过一些研究,我发现Qwt是最好的方式(而不是自己从头开始做所有事情).我已经在这里工作了几天,我无法弄清楚如何安装它.我使用32位Windows7.我按照INSTALL文件中的说明操作:
来自cmd - >
qmake qwt.pro
nmake
Run Code Online (Sandbox Code Playgroud)
在nmake结束后,我留下了错误
C:\Users\Peyo\Downloads\qwt-6.0.1>qmake qwt.pro
C:\Users\Peyo\Downloads\qwt-6.0.1>nmake
Microsoft (R) Program Maintenance Utility Version 10.00.30319.01
Copyright (C) Microsoft Corporation. All rights reserved.
cd src\ && "C:\Program Files\Microsoft Visual Studio 10.0\VC\bin\nmake.e
xe" -f Makefile
Microsoft (R) Program Maintenance Utility Version 10.00.30319.01
Copyright (C) Microsoft Corporation. All rights reserved.
"C:\Program Files\Microsoft Visual Studio 10.0\VC\bin\nmake.exe" -f Make
file.Debug all
Microsoft (R) Program Maintenance Utility Version 10.00.30319.01
Copyright (C) Microsoft Corporation. All rights reserved.
moc qwt_dyngrid_layout.h
moc qwt_magnifier.h
moc qwt_panner.h
moc …Run Code Online (Sandbox Code Playgroud) 我想通过我的perl脚本安装和使用ZeroMQ.我试图从CPAN安装ZeroMQ,但安装在最后一步失败了:
ZeroMQ-0.21/eg/threaded_server.pl
---- Unsatisfied dependencies detected during ----
---- DMAKI/ZeroMQ-0.21.tar.gz ----
Devel::CheckLib [build_requires]
ExtUtils::MakeMaker [build_requires]
Running make test
Make had some problems, won't test
Delayed until after prerequisites
Running make install
Make had some problems, won't install
Delayed until after prerequisites
..........
.............
blib\script\use-devel-checklib
pl2bat.bat blib\script\use-devel-checklib
MATTN/Devel-CheckLib-0.98.tar.gz
C:\PROGRA~2\MICROS~1.0\VC\bin\nmake.exe -- OK
Running make test
Microsoft (R) Program Maintenance Utility Version 9.00.30729.01
Copyright (C) Microsoft Corporation. All rights reserved.
C:\Perl5.14\bin\perl.exe "-MExtUtils::Command::MM" "-e" "test_harness(0, 'blib\lib', 'blib\arch')" t/*.t
t/00-load.t ................... ok
t/bad-single-word-compiler.t .. ok …Run Code Online (Sandbox Code Playgroud) 我使用SUBDIRS模板使用Qt .pro文件(主要是按照这个答案).
此外,我正在使用qmake -recursive MyProject.pro和构建我的解决方案nmake Release.
现在我想提供一个单独的批处理文件来清理发布输出和元文件(虽然不是调试文件).
的问题是,对于顶层Makefile,仅clean与distclean由产生qmake,而对于子目录,也有release-clean和debug-clean(也是文件夹包含一个额外的Makefile.Debug和Makefile.Release).
我想做的就是打电话
nmake Makefile release-clean
Run Code Online (Sandbox Code Playgroud)
从批处理脚本.但是,顶级makefile不包含此配置.
现在我可以手动为每个子项目调用相等的行,但这显然是我最不喜欢的选项.
有没有办法让qmake release-clean为顶级makefile 生成目标,还是有另一种方法来简单地清理发布文件?
PS:我正在使用nmake,所以我是Windows(XP)并使用MSVC(2008)
我正在将GNU Make makefile翻译为Microsoft Visual Studio Makefile.我有三个疑问:
1)如何替换字符串.例如在包含以下内容的文件夹中
namespace_type_function1.cpp
namespace_type_function2.cpp
namespace_type_function3.cpp
Run Code Online (Sandbox Code Playgroud)
我想改变类型让我们说"INT"字符串,所以我终于得到了
namespace_INT_function1.cpp
namespace_INT_function2.cpp
namespace_INT_function3.cpp
Run Code Online (Sandbox Code Playgroud)
2)如何以类似的方式添加前缀3.如何以相同的方式添加后缀.
我一直在遵循常见问题解答中的说明:是否有选项可以产生更多"详细"编译?.我现在有了:
$ cat C:/Program Files/CMake 2.8/share/cmake-2.8/Modules/Platform/Windows.cmake
[...]
# uncomment these out to debug nmake and borland makefiles
set(CMAKE_START_TEMP_FILE "")
set(CMAKE_END_TEMP_FILE "")
set(CMAKE_VERBOSE_MAKEFILE 1)
Run Code Online (Sandbox Code Playgroud)
然后我重新生成我的项目,然后运行nmake:
> cmake --version
cmake version 2.8.12.2
> cmake -G"NMake Makefiles" ..\project
> nmake VERBOSE=1
[...]
[ 73%] Building CXX object apps/foobar/CMakeFiles/bla.dir/my.cpp.obj
cd C:\Dashboards\MyTests\project-build-debug-vista32-nightly\apps\foobar
C:\PROGRA~1\MICROS~1.0\VC\bin\cl.exe @C:\Users\voxxl\AppData\Local\Temp\nm1362.tmp
Run Code Online (Sandbox Code Playgroud)
有没有办法访问完整的cl命令行?
我想打印一个Windows环境变量的值,比如,路径或错误级别,我试过这个,但它不起作用.在我的控制台中输出:
(不考虑它输出的空格/标签):
echo %PATH
%PATH
Run Code Online (Sandbox Code Playgroud)
Makefile文件:
PATH=$(PATH);\nonesuch
all:
echo %PATH%
Run Code Online (Sandbox Code Playgroud)
命令行:
nmake /E
Run Code Online (Sandbox Code Playgroud)
我如何解决它?
注意:Visual Studio的二进制路径在我的PATH变量中,这就是我在VS控制台外调用它的原因
我有一个相当大的解决方案(80个项目)。最近,我升级到VS2015U1,并修改了解决方案,使其包含一个makefile(nmake)项目,该项目是所有其他项目的先决条件。目的是使该makefile文件将某些第三方软件复制到项目的bin目录中,以使将它们放在一起进行测试和打包变得更加容易。
问题是,该makefile项目始终看起来是过时的。这意味着当您按F5进行测试时,我总是会弹出一个对话框。
我一直用Google搜索,直到我的Googler疼痛为止,包括我在stackoverflow上发现的所有内容。列出的解决方案似乎都没有帮助:
还有其他想法吗?