当我尝试从makefile链接时,出现以下错误:
LINK : fatal error LNK1104: cannot open file 'LIBCMT.lib'.
Run Code Online (Sandbox Code Playgroud)
Makefile执行:
C:\Users\snmcdonald\Desktop\winMake2\winMake2>nmake "_DEBUG=" /f win2.mk build
Microsoft (R) Program Maintenance Utility Version 10.00.30319.01
Copyright (C) Microsoft Corporation. All rights reserved.
cl /c /ZI /Fo"Debug\\" /Fe"Debug\\" main.c
Microsoft (R) 32-bit C/C++ Optimizing Compiler Version 16.00.30319.01 for 80x86
Copyright (C) Microsoft Corporation. All rights reserved.
main.c
cl /c /ZI /Fo"Debug\\" /Fe"Debug\\" lib.c
Microsoft (R) 32-bit C/C++ Optimizing Compiler Version 16.00.30319.01 for 80x86
Copyright (C) Microsoft Corporation. All rights reserved.
lib.c
lib Debug\lib.obj …Run Code Online (Sandbox Code Playgroud) 我是nmake的新手,需要修改构建脚本。我想执行命令并将结果捕获到变量中,然后将在整个脚本中使用该变量。但是,当尝试使用shell命令时,我收到以下错误消息:
makefile(4) : fatal error U1000: syntax error : ')' missing in macro invocation
Stop.
Run Code Online (Sandbox Code Playgroud)
我整理了一行脚本来测试shell命令。
生成文件:
CMDRESULT = $(shell hostname)
all:
echo $(CMDRESULT)
Run Code Online (Sandbox Code Playgroud)
这是使用的nmake的版本:
>nmake /?
Microsoft (R) Program Maintenance Utility Version 11.00.60610.1
Copyright (C) Microsoft Corporation. All rights reserved.
Run Code Online (Sandbox Code Playgroud)
nmake是否支持shell命令?nmake中是否还有另一个选项可以执行命令并捕获结果?
我正在尝试将我的SVN修订信息保存到宏中,同时通过Microsoft Visual Studio的nmake创建我的代码.
在GNU make中,我做了类似的事情:
SVN_REVISION=r$(shell svnversion -n)
Run Code Online (Sandbox Code Playgroud)
所以我得到例如:SVN_REVISION = r10001
这也可以在Microsoft nmake中做到吗?
先感谢您.
我正在使用MSVC 2015 64位命令提示符从源代码构建GDAL.我正在使用Windows 8.部分通过构建,我收到以下错误:
Creating library gdal_i.lib and object gdal_i.exp
odbccp32.lib(dllload.obj) : error LNK2019: unresolved external symbol _vsnwprintf_s referenced in function StringCchPrintfW
gdal201.dll : fatal error LNK1120: 1 unresolved externals
NMAKE : fatal error U1077: '"C:\Program Files (x86)\Microsoft Visual Studio 14.0\VC\BIN\amd64\link.EXE"' : return code '0x460'
Stop.
Run Code Online (Sandbox Code Playgroud)
我已阅读Microsoft网站和GDAL Git问题部分,这是2014年MSVC和MSVC 2015预发布版本的问题,但该问题应该在MSVC 2015最终版本之前得到解决.
我似乎并不是唯一有此问题的人,但我也没有看到解决方案(除了恢复到旧版本的MSVC,如2013).有没有人有幸使用MSVC 2015(64位)来构建GDAL?
我注意到nmake.exe它的推理规则搜索仅限于一个丢失的文件。我在网络上没有提到这个问题。我想念什么吗?
$ 猫Makefile
后缀:.a .b .d .e
全部:abc.e
.ab:
复制$ ** $ @
.bd:
复制$ ** $ @
.de:
复制$ ** $ @
$ touch abc.a
$ nmake
NMAKE:致命错误U1073:不知道如何制作“ abc.e”
停止。
$ nmake -n abc.a
'abc.a'是最新的
$ nmake -n abc.b
复制abc.a abc.b
$ nmake -n abc.d
NMAKE:致命错误U1073:不知道如何制作“ abc.d”
停止。
这个相同的Makefile与GNU make一起产生以下内容:
$ make -n 复制abc * abc.b 复制abc * abc.d 复制abc * abc.e rm abc.b abc.d
当然,$**宏和copy命令在GNU make中不那么有用。;-)
您的版本nmake.exe处理得更好吗?有魔术开关吗?还是真的像看起来那样坏了?
我正在尝试构建一个使用libcurl的Ruby C Extensions.到目前为止,我已经在Os X上成功构建了它.但是我在Windows开发方面经验不足,我不确定如何去做.
到目前为止,我可以通过遵循这些说明或多或少地使用Visual Studio命令提示符中的extconf.rb和nmake编译Ruby C Extensions
http://blogs.law.harvard.edu/hoanga/2006/12/14/getting-a-ruby-c-extension-to-compile-on-windows/
但是我的扩展链接libcurl,extconf.rb中有一行来检查这一点
# Make sure the cURL library is installed.
have_library("curl")
Run Code Online (Sandbox Code Playgroud)
在创建makefile时,我明白了
checking for main() in curl.lib... no
creating Makefile
Run Code Online (Sandbox Code Playgroud)
当我运行nmake时,我明白了
fatal error C1083: Cannot open include file: 'curl/curl.h': No such file or directory
Run Code Online (Sandbox Code Playgroud)
这是所有预期的,因为它没有安装.我已经下载了curl-7.26.0-devel-mingw64(我认为这适用于Windows 7)
我只是想在Windows环境中弄清楚我应该放置/ bin或/ include以便我的编译器可以找到它们.
我有一个项目,其中头文件在qt项目文件中的不同子文件夹(/ config/.h;/thread / .h等)中包含,如:
HEADERS += $$PWD/src/*.h
HEADERS += $$PWD/src/config/*.h
Run Code Online (Sandbox Code Playgroud)
然后安装简单描述:
headers.files = $$HEADERS
headers.path = $$INSTALL_INC_DIR/proj
Run Code Online (Sandbox Code Playgroud)
使用此lib的其他一些项目将包含来自该安装目录的文件,并且会出现问题 - 所有.h文件都复制到同一文件夹,没有子文件夹,并且在代码中它们包含在子文件夹(#include <proj/config/config.h>)中.
有可能告诉qmake(或实际上是nmake)复制文件时保留原始文件夹结构吗?
我使用win7-32bit + CMake的 + vs2013的NMAKE .EXE建立exe文件,我需要的exe能够在WinXP跑,我知道该怎么做,与vs2013 IDE(设置平台的工具,以v120xp),但我我没有使用IDE,我只是使用它的NMake.这是我生成项目文件和exe的方法:
build> cmake -G "NMake Makefiles" ..
build> nmake
Run Code Online (Sandbox Code Playgroud)
问题1:在CMakeLists.txt中,如何设置它使用v120xp?
问题2:是否有必要使用v120xp构建所有静态库?或者只是exe?
我需要在Windows上安装一些需要我的Perl程序的模块.看起来我需要一个64位nmake来构建这些模块.我在nmake15网上找到了,但它在我的系统上不起作用.
如何在Windows上构建这些Perl模块?

我不熟悉MAKEFILE并试图弄清楚如何在销毁和部署之间等待2 秒。
看起来NMAKE在互联网上的资源非常有限,我发现sleep 2抛出“睡眠”的那个不是内部或外部命令,也不是可运行的程序或批处理文件。
我在WINDOWS而不是LINUX上工作。
REGISTRY=registry.ilerler.info
IMAGE=ilerler.geocode.host
TAG=latest
MARATHON=http://mesos.ilerler.com/v2/apps/geocode
PAYLOAD=Marathon_geocode.json
.PHONY: deploy
push:
docker push $(REGISTRY)/$(IMAGE):$(TAG)
destroy:push
curl -X DELETE $(MARATHON)
echo Waiting
sleep 2
deploy:destroy
curl -X PUT -H "Content-Type: application/json" $(MARATHON) -d@$(PAYLOAD)
Run Code Online (Sandbox Code Playgroud) nmake ×10
windows ×3
c ×2
c++ ×2
makefile ×2
activeperl ×1
build ×1
cmake ×1
gdal ×1
perl ×1
powershell ×1
qmake ×1
qt ×1
ruby ×1
shell ×1
visual-c++ ×1
windows-xp ×1