Qt 编译C++;使用qmake的放大器失败
我有以下main.cpp文件:Qt 编译C++;使用qmake的放大器失败,qt,visual-c++,qmake,c++-amp,Qt,Visual C++,Qmake,C++ Amp,我有以下main.cpp文件: #include <amp.h> using namespace concurrency; int main() { int arr[] = {42}; array_view<int, 1> v(1, arr); return 0; } 如果我从VisualStudio2012命令行编译main.cpp(仅使用cl/EHsc main.cpp),一切都可以正常工作。但是如果我使用qmake和nmake,总是会出现链接错误,即存
#include <amp.h>
using namespace concurrency;
int main()
{
int arr[] = {42};
array_view<int, 1> v(1, arr);
return 0;
}
如果我从VisualStudio2012命令行编译main.cpp(仅使用cl/EHsc main.cpp),一切都可以正常工作。但是如果我使用qmake和nmake,总是会出现链接错误,即存在未解析的外部符号(来自amp)。有人知道如何解决这个问题吗?您忘了添加
LIBS += -lname_of_the_amp_lib
很抱歉,我不知道库的名称…我发现了问题所在:在mkspec文件qmake.conf中,编译器标志
Zc:wchar\u t-
导致编译器错误地将某些类型relatet转换为wchar\u t
,因此无法解决结果符号
要解决此问题,请将上述.pro文件更改为
TEMPLATE = app
CONFIG += console
CONFIG -= app_bundle
CONFIG -= qt
QMAKE_CXXFLAGS += -EHsc -Zc:wchar_t
SOURCES += main.cpp
(将-Zc:wchar\u t添加到QMAKE\u cxflags中)。编译器本身会注意根据所需的导入库进行链接。您应该将答案作为答案,以便它们不会显示在未回答的问题列表中。干杯。嘿,我有一个类似的问题(qt,MSVC++),但我使用的是MSVC++编译器(不是qmake)。我应该把这个修饰语放在哪里?
TEMPLATE = app
CONFIG += console
CONFIG -= app_bundle
CONFIG -= qt
QMAKE_CXXFLAGS += -EHsc -Zc:wchar_t
SOURCES += main.cpp