我刚买了一台新的四核计算机,发现nmake只使用了1个进程.
我曾经使用过具有开关-j4的make来启动4个进程.什么是nmake等价物?
[编辑]根据以下信息,我可以在qmake项目文件中添加一个命令:
QMAKE_CXXFLAGS + =/MP
这对我有效.非常感谢.
当我尝试使用该命令在Windows上安装PyQt5时
python configure.py
Run Code Online (Sandbox Code Playgroud)
我收到此错误:
Run Code Online (Sandbox Code Playgroud)Error: Make sure you have a working Qt qmake on your PATH.
我从PyQt5下载了pyQt5 .
我该如何安装PyQt5?
更新:
我Qt 5.0.2 for Windows 64-bit (VS 2012, 500 MB)从Qt下载页面安装,现在我有这个错误:
Run Code Online (Sandbox Code Playgroud)Querying qmake about your Qt installation... Determining the details of your Qt installation... Error: Failed to determine the detail of your Qt installation. Try again using the --verbose flag to see more detail about the problem.
当我执行命令时python configure.py --verbose:
Run Code Online (Sandbox Code Playgroud)Querying qmake about your …
gnu make,microsoft nmake和posix标准有多相似/不同?
显然有"哪个操作系统?","哪个编译器?" 和"哪个链接器?",但我具体指的是makefile本身的语法,语义和命令行选项.
如果我根据gnu make的手册编写makefile,那么我需要注意哪些最重要的可移植性问题?
我有一个简单的C-Programm(1源文件),我想在Linux和Windows上通过make resp编译.NMAKE.是否有可能使用单个makefile完成此操作?
我想到了类似的东西
ifeq($(MAKE), nmake)
// nmake code here
else
// make code here
endif
Run Code Online (Sandbox Code Playgroud)
不幸的是nmake似乎不明白ifeq,所以我不能用它.我有一个工作的makefile,但会产生非常难看的结果:
hello: hello.c
$(CC) hello.c
Run Code Online (Sandbox Code Playgroud)
这适用于两个系统.问题是结果取决于各个编译器的默认行为.在Linux下,我得到一个可执行的名为'a.out'而不是'hello'.在Windows下,我得到'hello.exe',但也有'hello.obj',我不想拥有它.
有没有人知道另一种方式?或者我正在尝试绝对不可能的事情?
在一台PC上运行CMake时,CMake默认生成NMake文件.另一方面,它生成一个Visual Studio项目.
我知道我可以通过添加-G "NMake Makefiles"到我的CMake语句的末尾来覆盖默认值,但我想知道为什么它默认为一个上的Visual Studio项目和另一个上的NMake文件.
nmake.exe,Microsoft Windows的make端口,曾经可以在Microsoft知识库服务器上下载.他们已经把这篇文章放下了,我不知道在哪里可以可靠地获得一个独立版本nmake.exe.我会使用其中一个Microsoft Visual Studio开发平台的副本,但我担心我会忘记包含一些备用DLL文件.
惯例1:高级类型目录,项目子目录
例如,wxWidgets项目使用以下样式:
/solution
/bin
/prj1
/prj2
/include
/prj1
/prj2
/lib
/prj1
/prj2
/src
/prj1
/prj2
/test
/prj1
/prj2
Run Code Online (Sandbox Code Playgroud)
优点:
缺点:
惯例2:高级项目目录,类型子目录
例如,Wireshark项目使用此样式
/solution
/prj1
/bin
/include
/lib
/src
/test
/prj2
/bin
/include
/lib
/src
/test
Run Code Online (Sandbox Code Playgroud)
优点:
缺点:
我们目前正在使用我们项目的惯例1,到目前为止它已经运作得相当好.现在,我正在添加单元测试(通过CxxTest)并使用nmake促进迁移到持续集成,约定1在创建正确的nmake文件时引起了一些严重的麻烦.
降低维护整个解决方案的构建脚本的工作量.
在其他项目的解决方案中分离项目及其构建步骤.
通过使用构建脚本进行签出以便为每次提交释放媒体生成,从而促进持续集成(显然也利用其他工具,如CruiseControl).
为开发人员添加或删除其他项目或源文件尽可能简单且最不容易出错.
我们有一个相当大的代码库.绝大多数代码是使用qmake编译来生成makefile的.但是,有一些子项目可以通过运行批处理文件或运行其他程序来生成.
我希望能够使用qmake编译所有内容,但我无法弄清楚如何让qmake简单地运行脚本.
我尝试过的一件事是在我的专业文件中使用QMAKE_EXTRA_TARGETS,如下所示:
TEMPLATE = lib
SOURCES = placeholder.cpp
CONFIG += no_link staticlib
batch_runner.target = placeholder.cpp
batch_runner.commands = my_batch_file.bat
QMAKE_EXTRA_TARGETS = batch_runner
Run Code Online (Sandbox Code Playgroud)
然后我必须让批处理文件生成placeholder.cpp,如下所示:
# do the real work here
# ...
# create placeholder.cpp so qmake and nmake are happy
echo // dummy >> placeholder.cpp
Run Code Online (Sandbox Code Playgroud)
这似乎工作正常.麻烦的是它有些笨拙.如果我没有指定batch_runner.target(即我将其留空)或者没有将placeholder.cpp放在SOURCES中,则批处理文件永远不会运行.这是因为qmake没有使batch_runner.commands成为Makefile中任何其他依赖项的操作.
有没有更好的方法让QMake构造一个Makefile,以便在Makefile执行时运行脚本?
我正在尝试按照此处说明的步骤操作:但在将以下内容输入控制台后:
configure.exe -release -no-webkit -no-phonon -no-phonon-backend -no-script -no-scripttools -no-qt3support -no-multimedia -no-ltcg
Run Code Online (Sandbox Code Playgroud)
我收到以下错误:
....
....
....
Running syncqt...
Creating qmake...
Microsoft (R) Program Maintenance Utility Version 10.00.30319.01
Copyright (C) Microsoft Corporation. All rights reserved.
cl -c -Fo./ -W3 -nologo -O2 /MP -I. -Igenerators -Igenerators\unix -Igenerators\win32 -Igenerators\mac -Igenerators\symbian
-IE:\qt_source\include -IE:\qt_source\include\QtCore -IE:\qt_source\include -IE:\qt_source\include\QtCore -IE:\qt_source\src\corelib
\global -IE:\qt_source\src\corelib\xml -IE:\qt_source\mkspecs\win32-msvc2010 -IE:\qt_source\tools\shared -DQT_NO_TEXTCODEC -DQT_NO
_UNICODETABLES -DQT_LITE_COMPONENT -DQT_NODLL -DQT_NO_STL -DQT_NO_COMPRESS -DUNICODE -DHAVE_QCONFIG_CPP -DQT_BUILD_QMAKE -DQT_NO_THREA
D -DQT_NO_QOBJECT -DQT_NO_GEOM_VARIANT -DQT_NO_DATASTREAM -DQT_NO_PCRE -DQT_BOOTSTRAPPED -DQLIBRARYINFO_EPOCROOT -c -Yc -Fpqmake_pch.
pch -TP …Run Code Online (Sandbox Code Playgroud) 我正在按照本教程在 Windows 上构建 GLFW,但在运行时遇到错误cmake -S . -B Build:
PS ~\glfw-3.3.2\GLFW> cmake -S . -B Build
CMake Error at CMakeLists.txt:3 (project):
Running
'nmake' '-?'
failed with:
The system cannot find the file specified
-- Configuring incomplete, errors occurred!
See also "~/glfw-3.3.2/GLFW/Build/CMakeFiles/CMakeOutput.log".
Run Code Online (Sandbox Code Playgroud)
输出日志几乎完全为空,仅包含我的 Windows 版本的一行。我还没有找到任何与我的匹配的讨论或问题。我什至不知道 nmake 是否有-?标志,因为它没有在微软文档网站上列出。
我尝试过定位在其他文件夹中,因为也许就是这种情况。但没有运气。
我尝试用其他错误解决方案来解决它,但无济于事。