我正在尝试在Ubuntu 14.04上设置Eclipse(Mars 2.0),以便使用ArrayFire实用程序编译和运行C / C ++应用程序。我已经在/ opt / ARRAYFIRE / arrayfire-3中的计算机上安装了ArrayFire,我首先尝试使用Eclipse来测试ArrayFire的性能。
我创建了一个简单的C ++测试代码:
#include <iostream>
#include <arrayfire.h>
using namespace af;
using namespace std;
int main() {
const int N = 5;
int nBytes = N * sizeof(int);
int hostarr[N] = {3,1,4,1,5};
float f[8] = {1,2,4,8,16,32,64,128};
af::array aux(2,4,f);
cout << "Well done!!!" << endl;
return 0;
}
我遵循了ArrayFire的所有安装说明(包括先决条件)。然后,我在Eclipse项目C / C ++ Build Settings上设置了ArrayFire头文件“include”( - l)和库“lib”( - L)安装目录路径:
对于我的具体案例:
这是我一直为新的lib做的正常程序。但是,当我尝试使用gcc编译时,下一个错误发生了:
Invoking: GCC C++ Linker
g++ -L/opt/AMDAPPSDK-3.0/lib -L/opt/ARRAYFIRE/arrayfire-3/lib -o "classifier" ./src/classifier.o -lOpenCL
./src/classifier.o: En la función `main':
/home/ECLIPSE/classifier/Debug/../src/classifier.cpp:23: referencia a `af::array::array<float>(long long, long long, float const*, af_source)' sin definir
/home/ECLIPSE/classifier/Debug/../src/classifier.cpp:26: referencia a `af::array::~array()' sin definir
/home/ECLIPSE/classifier/Debug/../src/classifier.cpp:26: referencia a `af::array::~array()' sin definir
collect2: error: ld devolvió el estado de salida 1
(抱歉西班牙语)“sin definir”=未定义。
我知道标题链接良好,因为我可以看到声明和编译器工作正常,但链接器失败。
有没有人知道可能是什么问题或发生了什么?