如何为普通 C++ 项目设置 QMake
How to setup QMake for a plain c++ project
我如何设置一个普通的 c++ 项目并使用 qt creator 和 qmake 构建系统继续开发它(在 windows!)
我的 Qt Creator 可以完美地处理 qt 项目。我正在使用 MSVC2017-64 作为我的编译器。
我试过设置这样的项目
myproject.pro
CONFIG -= qt
CONFIG += c++17
DEFINES -= UNICODE QT_LARGEFILE_SUPPORT
SOURCES += \
main.cpp
HEADERS += \
main.h
# Default rules for deployment.
qnx: target.path = /tmp/$${TARGET}/bin
else: unix:!android: target.path = /opt/$${TARGET}/bin
!isEmpty(target.path): INSTALLS += target
main.cpp
#include "main.h"
#include <iostream>
int main(int argsCount, char** argsArray) {
puts("Hello, World!");
return 0;
}
main.h
#ifndef MAIN_H
#define MAIN_H
#endif // MAIN_H
这是我的项目页面的样子:
但毕竟当我尝试 build/compile 时,我得到了这个错误:
MSVCRTD.lib(exe_winmain.obj):-1: error: LNK2019: unresolved external
symbol WinMain referenced in function "int __cdecl invoke_main(void)"
(?invoke_main@@YAHXZ)
debug\WAVE2.exe:-1: error: LNK1120: 1 unresolved externals
我在这里错过了什么?
我认为您需要指定这是一个控制台应用程序。您可以通过添加 CONFIG += console
或 CONFIG += cmdline
来完成此操作。后者取代前者 cross-platform。见 qmake variable reference.
或者,如果您的应用程序确实是一个 GUI 应用程序(但通过 Qt 以外的其他方式),您可以指定 CONFIG += windows
。
这两个变量都会添加您目前缺少的适当库。
除了ypnos answer,您还可以使用项目模板。
在 Qt creator > 新建项目 > 非 Qt 项目 > 普通 C++ 应用程序中。这将创建您需要的一切。
.pro 文件:
TEMPLATE = app
CONFIG += console c++11
CONFIG -= app_bundle
CONFIG -= qt
SOURCES += \
main.cpp
我如何设置一个普通的 c++ 项目并使用 qt creator 和 qmake 构建系统继续开发它(在 windows!)
我的 Qt Creator 可以完美地处理 qt 项目。我正在使用 MSVC2017-64 作为我的编译器。
我试过设置这样的项目
myproject.pro
CONFIG -= qt
CONFIG += c++17
DEFINES -= UNICODE QT_LARGEFILE_SUPPORT
SOURCES += \
main.cpp
HEADERS += \
main.h
# Default rules for deployment.
qnx: target.path = /tmp/$${TARGET}/bin
else: unix:!android: target.path = /opt/$${TARGET}/bin
!isEmpty(target.path): INSTALLS += target
main.cpp
#include "main.h"
#include <iostream>
int main(int argsCount, char** argsArray) {
puts("Hello, World!");
return 0;
}
main.h
#ifndef MAIN_H
#define MAIN_H
#endif // MAIN_H
这是我的项目页面的样子:
但毕竟当我尝试 build/compile 时,我得到了这个错误:
MSVCRTD.lib(exe_winmain.obj):-1: error: LNK2019: unresolved external symbol WinMain referenced in function "int __cdecl invoke_main(void)" (?invoke_main@@YAHXZ)
debug\WAVE2.exe:-1: error: LNK1120: 1 unresolved externals
我在这里错过了什么?
我认为您需要指定这是一个控制台应用程序。您可以通过添加 CONFIG += console
或 CONFIG += cmdline
来完成此操作。后者取代前者 cross-platform。见 qmake variable reference.
或者,如果您的应用程序确实是一个 GUI 应用程序(但通过 Qt 以外的其他方式),您可以指定 CONFIG += windows
。
这两个变量都会添加您目前缺少的适当库。
除了ypnos answer,您还可以使用项目模板。
在 Qt creator > 新建项目 > 非 Qt 项目 > 普通 C++ 应用程序中。这将创建您需要的一切。
.pro 文件:
TEMPLATE = app
CONFIG += console c++11
CONFIG -= app_bundle
CONFIG -= qt
SOURCES += \
main.cpp