【发布时间】:2014-06-03 15:06:34
【问题描述】:
每一个,
我正在尝试使用 NVCC 编译以下使用 FFTW3.3 库的代码:
#include <stdio.h>
#include <fftw3.h>
void main() {
fftwf_complex a;
a[0] = 1;
a[1] = -1;
printf("a = %f %f, Testing FFTW with NVCC\n", a[0], a[1]);
}
当我使用 gcc 编译时,它工作正常:
cc main.cpp -o main.out -lfftw3 -lm
main.out
a = 1.000000 -1.000000, Testing FFTW with CUDA
但是,当我尝试使用 nvcc 而不是 gcc 编译与 .cu 文件相同的代码时, 我得到一长串编译错误:
nvcc main.cu -o main.out -lfftw3 -lm
/usr/include/fftw3.h(370): error: identifier "__float128" is undefined
/usr/include/fftw3.h(370): error: identifier "__float128" is undefined
...
删除两个库 -lfftw3 -lm 将导致 fftwf_complex 的未定义符号。
谁能弄清楚发生了什么?
【问题讨论】:
-
什么操作系统?哪个版本的cuda?什么版本的 gcc?
-
Ubuntu 12.04、CUDA5.5、gcc 4.6.3。按照@talonmies 的建议,我有一个解决方法。感谢您的评论。