我在配置 qmake 项目以与控制台中的命令相同的方式构建/编译时遇到问题。从控制台编译的工作命令是:
g++ main.cpp -std=c++11 -luWS -lz -lssl
这些标志对于解析一些 undefined reference 是必需的。现在我设置我的 .pro 文件如下
QT += core
QT -= gui
TARGET = car_mpc_ex
CONFIG += console
CONFIG -= app_bundle
QMAKE_CXXFLAGS += -std=c++11
QMAKE_CXXFLAGS += -luWS
QMAKE_CXXFLAGS += -lz
QMAKE_CXXFLAGS += -lssl
SOURCES +=
main.cpp
[...]
DISTFILES +=
HEADERS +=
[...]
在 QT Creator 中重建所有内容,并且 undefined reference 在控制台中构建时已解决,但未解决...不知何故,我的标志被忽略了?
最佳答案
QMAKE_CXXFLAGS
用于编译器标志,而库应指定为链接器标志。这是通过 LIBS
完成的变量(或带有 QMAKE_
前缀 QMAKE_LIBS
的等效变量,您不需要使用该变量)。
此外,必须为编译器和链接器指定 C++11 选项,但您可以使用 qmake CONFIG
变量以更可移植的方式处理它:
CONFIG += c++11
关于c++ - 如何在 qmake 中配置编译器,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46057766/