1

私は次の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を使用すると、常にリンクエラーが発生し、未解決の外部シンボル(ampからのシンボル)が存在します。誰かがこの問題を解決する方法を知っていますか?

4

2 に答える 2

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に追加します)。

于 2012-12-14T11:47:24.210 に答える
0

追加するのを忘れた

LIBS += -lname_of_the_amp_lib

申し訳ありませんが、ライブラリの名前がわかりません...

于 2012-12-13T18:17:05.563 に答える