我正在尝试在 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)安装目录路径:
对于我的具体情况:
- 在 GCC C++ 编译器中 -> 包括:/opt/ARRAYFIRE/arrayfire-3/include
- 在 GCC C 编译器中 -> 包括:/opt/ARRAYFIRE/arrayfire-3/include
- 在 GCC C++ 链接器 -> 库中:/opt/ARRAYFIRE/arrayfire-3/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”= 未定义。
我知道标头链接良好,因为我可以看到声明和编译器运行良好,但是链接器失败。
有谁知道可能是什么问题或发生了什么?