标签: nmake

如何加快我的CMake启用C++项目的编译时间?

我最近遇到了几个关于改善CMake启用C++项目周转时间的具体方面的问题(比如"我应该在什么级别分配我的构建过程?""cmake rebuild_cache 只是一个子目录?"),我是想知道是否有更一般的指导利用CMake提供的特定可能性.如果可能没有跨平台编译时优化,我主要对Visual Studio或基于GNU toochain的方法感兴趣.

我已经意识到并投资了一般推荐的领域来加速C++构建:

  1. 更改/优化/微调工具链

  2. 优化您的代码库/软件架构(例如,通过减少依赖关系并使用明确定义的子项目 - 单元测试)

  3. 投资更好的硬件(SSD,CPU,内存)

喜欢在这里,这里这里推荐.所以我在这个问题上的重点是第一点.

另外我知道在CMake的Wiki中可以找到的建议:

前者只处理基础(并行make),后者主要处理如何加速解析CMake文件.

为了使这更具体一点,如果我从这里使用MSYS/GNU的100个库获取我的CMake示例,我得到了以下time测量结果:

$ cmake --version
cmake version 3.5.2
CMake suite maintained and supported by Kitware (kitware.com/cmake).

$ time -p cmake -G "MSYS Makefiles" ..
-- The CXX compiler identification is GNU 4.8.1
...
-- Configuring done
-- Generating done
-- Build files have been written to: [...]
real 27.03
user …
Run Code Online (Sandbox Code Playgroud)

performance nmake compilation cmake gnu-make

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

makedepend是否与nmake一起使用?

只是想知道是否有与视觉工作室一起提供的'makedepends'等效物,我可以使用nmake.有人知道吗?

nmake makefile visual-studio-2008 visual-c++

11
推荐指数
3
解决办法
2600
查看次数

VS2012 nmake使用v110_xp工具集?

有没有办法在使用"nmake"编译时使用v110_xp工具集(而不是默认的"v110")?

我正在尝试为VisualStudio2012编译Qt5库,我也需要它在Windows XP机器上运行.我已经设法使用带有nmake的VS2012编译所有Qt5库,但即使是简单的测试应用程序也无法在XP机器上运行,因为" 程序入口点_except_handler4_common无法位于动态链接库msvcrt.dll中 ".(在Windows 7计算机上,我的测试应用程序正常工作)

c++ nmake qt5 visual-studio-2012

11
推荐指数
1
解决办法
6644
查看次数

什么是NMAKE以及如何使用它?

什么是NMAKE以及如何使用它?

NMAKE有一个很好的教程吗?

nmake

10
推荐指数
1
解决办法
4602
查看次数

将FORTRAN转换为C/C++

作为我的最后一年项目的一部分,我需要将一些FORTRAN代码转换为C或C++(只要我能理解它,哪种语言无关紧要,我能理解C风格的语言).

我发现f2c,一个据称将FORTRAN转换为C的程序,并尝试按照说明安装它,方法是在我的驱动器上保存makefile.vc文件,然后执行

copy makefile.vc makefile
nmake
Run Code Online (Sandbox Code Playgroud)

(这是有关安装f2c的README文件的一部分,该文件包含在f2c 下载页面中)

要在Linux或Unix系统上编译f2c,请将makefile.u复制到makefile,必要时编辑makefile(参见下面的注释)并输入"make"(或者可能是"nmake",具体取决于您的系统).

要使用Microsoft Visual C++在MS Windows系统上编译f2c.exe,

复制makefile.vc makefile nmake

对于其他PC编译器,您可能需要使用-DMSDOS编译xsum.c(即使用MSDOS #defined).

如果您的编译器不理解ANSI/ISO C语法(即,如果您有K&R C编译器),请使用-DKR_headers进行编译.

在非Unix系统中,文件具有单独的二进制和文本模式,您可能需要"make xsumr.out"而不是"make xsum.out".

我正在运行x64位版本的Windows Vista并尝试"nmake",但我得到了

'nmake'不被识别为内部或外部命令,可操作程序或批处理文件.

我经过一些搜索后下载了Nmake15.exe但它在x64位机器上不起作用,显然没有它的版本.所以我在被告知可行的情况下下载了Windows SDK,但它没有改变任何东西.

我在哪里出错了,如果有的话,有没有办法将FORTRAN代码转换成C或C++?

c c++ windows fortran nmake

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

构建Qt - NMAKE:致命错误U1077:'cd':返回代码'0x2'

我正在尝试使用msvc2015使用静态链接构建Qt5.5,但我遇到了以下错误(实际上有很多错误,但我只列出了一些,它们都完全相同):

K:\Archivos de programa\Microsoft Visual Studio 14.0\VC\INCLUDE\cstdint(50): error C2873: 'uint_fast64_t': symbol cannot be used in a using-declaration
K:\Archivos de programa\Microsoft Visual Studio 14.0\VC\INCLUDE\cstdint(52): error C2039: 'intmax_t': is not a member of '`global namespace''
K:\Archivos de programa\Microsoft Visual Studio 14.0\VC\INCLUDE\cstdint(52): error C2873: 'intmax_t': symbol cannot be used in a using-declaration
K:\Archivos de programa\Microsoft Visual Studio 14.0\VC\INCLUDE\cstdint(53): error C2039: 'uintmax_t': is not a member of '`global namespace''
K:\Archivos de programa\Microsoft Visual Studio 14.0\VC\INCLUDE\cstdint(53): error C2873: 'uintmax_t': symbol cannot be used in a …
Run Code Online (Sandbox Code Playgroud)

c++ qt nmake visual-studio

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

在makefile中使用带有通配符的nmake

我正在尝试设置一个nmake makefile来自动将我们的balsamiq模型文件导出到png文件中,但是我担心如何制作一个通用规则无法做到这一点,而无需明确列出所有文件我想出口.

此页面详细介绍了导出文件的命令行语法,此页面包含一个示例,其中包含.obj文件到.exe文件的通用规则.

我到目前为止尝试过的makefile看起来像这样:

.bmml.png:
    "C:\Program Files\Balsamiq Mockups\Balsamiq Mockups.exe" export $< $@
Run Code Online (Sandbox Code Playgroud)

但这不起作用.

如果我只是运行nmake(带有一些过时的png文件),nmake就是这样做的:

[C:\Temp] :nmake

Microsoft (R) Program Maintenance Utility Version 9.00.30729.01
Copyright (C) Microsoft Corporation.  All rights reserved.


[C:\Temp] :
Run Code Online (Sandbox Code Playgroud)

如果我要求它构建一个特定的文件,它会这样做:

[C:\Temp] :nmake "TestFile.png"

Microsoft (R) Program Maintenance Utility Version 9.00.30729.01
Copyright (C) Microsoft Corporation.  All rights reserved.

NMAKE : fatal error U1073: don't know how to make '"TestFile.png"'
Stop.

[C:\Temp] :
Run Code Online (Sandbox Code Playgroud)

在那里任何一个可以让我直截了当的nmake大师?

一个示例makefile,通过复制它们来简单地从.txt文件生成.dat文件,以进行试验,如下所示:

.txt.dat:
    copy $< $@
Run Code Online (Sandbox Code Playgroud)

这没什么用,所以显然我不明白这些通用规则是如何运作的.我是否需要指定一个目标,以某种方式列出我想要的文件?


编辑:回答新答案:

这个makefile:

{}.txt{}.dat:
    copy $** …
Run Code Online (Sandbox Code Playgroud)

png nmake export balsamiq

9
推荐指数
1
解决办法
7787
查看次数

在Windows 7,Visual Studio 2010和命令行中使用CMake

如何在命令行上使用CMake和Visual Studio 2010?

使用Visual C++ Express Edition(2010),我会输入:

cmake .
nmake
nmake install
Run Code Online (Sandbox Code Playgroud)

简单.

我注意到在Visual Studio 2010中,CMake生成了一个解决方案文件而不是Makefile.所以我键入:

cmake .
msbuild mysolutionfile.sln
Run Code Online (Sandbox Code Playgroud)

但那又怎样?我曾经能够键入"nmake install",它会安装该项目.我现在要输入什么来安装项目?

msbuild nmake cmake visual-studio-2010 windows-7

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

如何缩短Qt制作流程?

我已经下载了一个Windows上的目标开源Qt.由于我使用VS2010命令提示符进行安装,因此它会自动将平台设置为msvc-2010.当我尝试使用nmake构建时,完成安装大约需要7-8个小时.在这个过程中,我注意到Qt正在编译我不需要的库,比如javascript.

我可以知道如何缩短构建过程,因为我专注于桌面开发吗?

qt build-process nmake

9
推荐指数
1
解决办法
7467
查看次数

构建PBRT v2错误 - 错误1错误U1077:'if':返回代码'0x1'

我有visual studio 2013社区版,我得到了pbrt-v2代码库并且一直在尝试构建解决方案,但这是我遇到的错误之一(它与nmake似乎有关):

 NMAKE - Error  1 error U1077: 'if' : return code '0x1'
Run Code Online (Sandbox Code Playgroud)

我不知道该怎么办,因为其他说明似乎不太清楚.任何帮助将不胜感激!谢谢你,祝你有个美好的一天!

-------------- UPDATE --------------------

我得到了它在Visual Studio 2013上编译和构建.问题是我认为我已经过时的PBRT文件了.基本上我做的是我通过github检查了项目,我认为应该可以工作,但后来我注意到你可以在网站上下载最新的pbrt-v2文件.事实上,作者有一个VS studio 2015的解决方案文件,我删除并重新安装了2013年,因为我认为这是问题所在.无论如何,使用我直接从网站下载的文件中的2012,我能够构建解决方案.我会保留这个问题以防万一有人遇到类似的问题.

c++ nmake visual-studio-2013 pbrt

8
推荐指数
1
解决办法
384
查看次数