我有以下main.cpp文件:
#include <amp.h>
using namespace concurrency;
int main()
{
int arr[] = {42};
array_view<int, 1> v(1, arr);
return 0;
}
和.pro文件:
TEMPLATE = app
CONFIG += console
CONFIG -= app_bundle
CONFIG -= qt
QMAKE_CXXFLAGS += -EHsc
SOURCES += main.cpp
如果我从Visual Studio 2012命令行编译main.cpp(只使用cl / EHsc main.cpp),一切正常。但是如果我使用qmake和nmake总是存在一个链接错误,那就是有未解析的外部符号(来自放大器)。有人知道如何解决这个问题吗?
答案 0 :(得分:2)
我想通了,问题是什么:在mkspec文件qmake.conf中,编译器标志Zc:wchar_t-
导致编译器错误地将某些类型的关联转换为wchar_t
,因此生成的符号不能解决。
要解决此问题,请将上述.pro文件更改为
TEMPLATE = app
CONFIG += console
CONFIG -= app_bundle
CONFIG -= qt
QMAKE_CXXFLAGS += -EHsc -Zc:wchar_t
SOURCES += main.cpp
(将-Zc:wchar_t添加到QMAKE_CXXFLAGS)。
答案 1 :(得分:0)
你忘了添加
LIBS += -lname_of_the_amp_lib
抱歉,我不知道lib的名字......