标签: nmake

Qt moc.exe没有生成*.moc文件

我正在尝试构建qtestlib/tutorial1示例,但是当我运行时没有生成testqstring.moc文件nmake(我在Windows XP SP3上运行Qt 4.5.2).
我将testqstring.cpp从tutorial目录复制到我的构建目录(C:\ sandboxes\testqstring),并从Qt命令提示符运行我的MS Visual Studio 8安装中的vsvars32.bat文件来添加VS环境变量.

根据教程,我应该运行:

> qmake -project "CONFIG += qtestlib"
> qmake
> nmake
Run Code Online (Sandbox Code Playgroud)

当我这样做时,输出nmake是:

C:/Apps/Qt/2009.03/qt/bin\moc.exe -DUNICODE -DQT_LARGEFILE_SUPPORT -DQT_DLL -DQT_TESTLIB_LIB -DQT_GUI_LIB -DQT_CORE_LIB -DQT_THREAD_SUPPORT -I"....\Apps\Qt\2009.03\qt\include\QtCore" -I"....\Apps\Qt\2009.03\qt\include\QtGui"-I"....\Apps\Qt\2009.03\qt\include\QtTest"-I"....\Apps\Qt\2009.03\qt\include"-I"." -I"....\Apps\Qt\2009.03\qt\include\ActiveQt"-I"debug"-I"....\Apps\Qt\2009.03\qt\mkspecs\win32-g ++"-D__GNUC__ - DWIN32 testqstring.cpp -o debug\testqstring.moc

g ++ -c -g -frtti -fexceptions -mthreads -Wall -DUNICODE -DQT_LARGEFILE_SUPPORT -DQT_DLL -DQT_TESTLIB_LIB -DQT_GUI_LIB -DQT_CORE_LIB -DQT_THREAD_SUPPORT -I"....\Apps\Qt\2009.03\qt\include\QtCore"-I" ....\Apps\Qt\2009.03\qt\include\QtGui"-I"....\Apps\Qt\2009.03\qt\include\QtTest"-I"....\Apps\Qt\2009.03\qt\include"-I"." -I"....\Apps\Qt\2009.03\qt\include\ActiveQt"-I"debug"-I"....\Apps\Qt\2009.03\qt\mkspecs\win32-g ++"-o debug\testqstring.o testqstring.cpp

testqstring.cpp:63:27:testqstring.moc:没有这样的文件或目录
NMAKE:致命错误U1077:'C:\ Apps\Qt\2009.03\mingw\bin\g ++.EXE':返回代码'0x1'停止.
NMAKE:致命错误U1077:'C:\ PROGRA~1\MICROS~3\VC\BIN \nmake.exe':返回代码'0x2'停止.

所以,我可以看到正在调用moc.exe来生成debug/testqstring.moc,但是从不生成该文件.

感谢您提供的任何和所有指导.

qt qmake nmake

5
推荐指数
1
解决办法
2万
查看次数

vs2012上的弯路编辑(Windows 8.1)

使用visual studio 2012命令工具(即在"本机工具命令提示符"命令控制台中),我运行了vcvars32.bat,并导航到*c:\ program file(x86)\ Microsoft Research\Detours Express 3.0*.

在此目录中运行nmake时,它会开始成功构建,但随后会退出并显示错误:

cl /nologo /nologo /Zi /MT /Gm- /W4 /WX /Od /DDETOURS_BITS=32 /I..\..\include /Gs /DDETOURS_X86=1 /DDETOURS_32BIT=1 /D_X86_ /DDETOURS_OPTION_BITS=64 /Fdobj.X86\vc.pdb /Foobj.X86\member.obj /c member.cpp

member.cpp
member.cpp(88) : error C2440: 'type cast' : cannot convert from 'void (__thiscall CMember::* )(void)' to 'PBYTE &'
Reason: cannot convert from 'overloaded-function' to 'PBYTE *'
There is no context in which this conversion is possible 

member.cpp(90) : error C2440: 'type cast' : cannot convert from 'void (__thiscall …
Run Code Online (Sandbox Code Playgroud)

detours nmake visual-studio-2012

5
推荐指数
1
解决办法
1503
查看次数

如何在makefile中创建目录

我正在使用Visual Studio 2005 nmake,我有一个像这样的测试makefile:

sometarget:
    -mkdir c:\testdir
Run Code Online (Sandbox Code Playgroud)

我想始终创建目录,而不必指定'sometarget'.例如,我可以这样做:

!if [if not exist c:\testdir\$(null) mkdir c:\testdir]
!endif
Run Code Online (Sandbox Code Playgroud)

但这需要两行,我真的只想做"-mkdir c:\ testdir".如果我只用"-mkdir c:\ testdir"替换它我从nmake得到一个错误 - "致命错误U1034:语法错误:分隔符丢失".

我怎么能总是执行mkdir,而不是搞乱!if []的东西?

nmake makefile visual-c++

4
推荐指数
2
解决办法
1万
查看次数

nmake中的foldername和文件名的连接

我有一个包含宏中文件列表的Nmake Makefile:

MYSRCFILES1=myfolder\file1.svg myfolder\file2.svg ... myfolder\file99.svg
Run Code Online (Sandbox Code Playgroud)

和第二个就像这样:

MYSRCFILES2=myfolder2\file1.svg myfolder2\file2.svg ... myfolder2\file99.svg
Run Code Online (Sandbox Code Playgroud)

我正在尝试的是避免重复文件列表,并避免重复文件夹名称,如下所示:

MYSRCFILES0=file1.svg file2.svg file3.svg

MYSRCFILES1="prepend 'myfolder\' to each element of $(MYSRCFILES0)"

MYSRCFILES2="prepend 'myfolder2\' to each element of $(MYSRCFILES0)"
Run Code Online (Sandbox Code Playgroud)

通过Nmake的文档挖掘自己到目前为止我还没有找到解决方案.知道怎么做到这一点?

nmake makefile

4
推荐指数
1
解决办法
1815
查看次数

在NMake中测试文件是否存在

在GNU Make的makefile中,我使用这个习惯来测试文件是否存在:

static:
ifeq ($(wildcard $(FileName)),)
    # do something when the file doesn't exist
else
    # do something different when it does
endif
Run Code Online (Sandbox Code Playgroud)

但它在NMake(fatal error U1000: syntax error : ')' missing in macro invocation)中不起作用.我怎样才能更换它?如果替换在两个构建系统中都有效,那将是完美的.

nmake makefile

4
推荐指数
3
解决办法
1万
查看次数

扩展的命令行太长

在使用 MSVC9 时,我在链接阶段遇到了问题。它说:

NMAKE:致命错误 U1095:扩展命令行 link.exe 。. . 太长

c++ linker nmake

4
推荐指数
2
解决办法
4091
查看次数

仅在重建时运行预构建事件

我正在编译一个项目,该项目依赖于其他几个开源项目(特别是 Zlib 和 LibTIFF),为此提供了 Windows 生成文件(旨在与 nmake 一起使用)。我想这样安排,每当我对我的项目执行“重建”时,开源项目也会用适当的配置(调试/发布、32/64 位等)重建。

我自己的项目相当简单,但并非微不足道。我试图弄清楚如何直接或使用 CMake 生成我自己的 nmake 生成文件,从而浪费了我最初的几天。尽管对 GNU make 有相当多的经验,但这让我失去了生存的意愿。从康复中心出来后,我决定坚持使用 Visual Studio 项目文件来构建我自己的项目,并定义一个“预构建事件”以在供应商为我的开源库提供的 makefile 上执行 nmake。

例如,在我的 32 位版本构建的 Visual Studio 2010 项目页面中,使用英特尔 C++ 编译器,我将预构建事件命令行编写为:

call "C:\Program Files (x86)\Intel\Composer XE 2013 SP1\bin\ipsxe-comp-vars.bat" ia32 vs2010
cd ..\..\..\zlib-1.2.8
nmake /f win32\Makefile.msc zlib.lib
cd ..\tiff-4.0.3
nmake /f Makefile.vc lib
Run Code Online (Sandbox Code Playgroud)

(我意识到我也可以将上述内容放入批处理文件中,然后调用批处理文件,但我不想给自己另一个文件来跟踪)。无论如何,这很好用,除了一件事:如果我决定更改我的配置,我想在两个库上执行“nmake clean”,以确保它们是用我的新配置重建的,大致上的:

call "C:\Program Files (x86)\Intel\Composer XE 2013 SP1\bin\ipsxe-comp-vars.bat" ia32 vs2010
cd ..\..\..\zlib-1.2.8
IF "%BUILDACTION%"=="REBUILD" nmake /f win32\Makefile.msc clean
nmake /f win32\Makefile.msc zlib.lib
cd ..\tiff-4.0.3
IF "%BUILDACTION%"=="REBUILD" …
Run Code Online (Sandbox Code Playgroud)

msbuild nmake makefile batch-file visual-studio-2010

4
推荐指数
1
解决办法
4757
查看次数

如何在/使用 Visual Studio 2010 中为 64 位 Windows 构建 libcurl?

因此,最初,我按照 的说明进行操作,BUILD.WINDOWS.txt通过创建一个新文件winbuild.bat并将其放置在我的 curl 文件夹的根目录中,我能够构建 32 位的 libcurl :

CALL "C:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\bin\vcvars32.bat"
CD winbuild
DEL CURL_OBJS.inc
DEL LIBCURL_OBJS.inc
DEL vc100.idb
nmake /f Makefile.vc mode=dll VC=10 ENABLE_WINSSL=yes GEN_PDB=yes MACHINE=X86
CD ..
EXIT /B 0
Run Code Online (Sandbox Code Playgroud)

然后我从现有代码转到文件/新建/项目.../Visual C++/使用外部构建系统/构建命令行:winbuild.bat。我尝试使用 winbuild64.bat 在我的 x64 属性中创建一个新平台:

CALL "C:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\bin\x86_amd64\vcvarsx86_amd64.bat"
CD winbuild
DEL CURL_OBJS.inc
DEL LIBCURL_OBJS.inc
DEL vc100.idb
nmake.exe /f Makefile.vc mode=dll VC=10 ENABLE_WINSSL=yes GEN_PDB=yes MACHINE=x64 DEBUG=no
CD ..
EXIT /B 0
Run Code Online (Sandbox Code Playgroud)

但这是我对 winbuild64.bat 的输出:

Setting environment …
Run Code Online (Sandbox Code Playgroud)

c 64-bit nmake libcurl visual-studio-2010

4
推荐指数
1
解决办法
7655
查看次数

在 windows\system32 文件夹中找不到 nmake.exe?如何在 Windows 中设置 nmake 命令?

当我nmake在命令提示符中键入命令时,出现此错误:

'nmake' 不是内部或外部命令可操作的程序或批处理文件。

另外,我nmake.exe在我的系统中找不到该文件。

如何nmake在 Windows 上设置命令?

nmake

4
推荐指数
1
解决办法
2万
查看次数

使用cmake和nmake x64

我使用cmake生成一个NMake文件,一切都很顺利.

我使用的是x64工具集(没有Visual Studio,只有SDK),因此我键入了nmake,但它生成的是x86版本,而不是x64版本.

你知道为什么吗 ?以及如何强制nmake定位x64?

谢谢

64-bit nmake cmake

4
推荐指数
1
解决办法
1438
查看次数