使用qmake编译C ++ AMP失败

时间:2012-12-13 13:22:21

标签: 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;
}

和.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总是存在一个链接错误,那就是有未解析的外部符号(来自放大器)。有人知道如何解决这个问题吗?

2 个答案:

答案 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的名字......