2

我正在尝试在 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”= 未定义。

我知道标头链接良好,因为我可以看到声明和编译器运行良好,但是链接器失败。

有谁知道可能是什么问题或发生了什么?

4

0 回答 0