关于FFTW3和NE10源代码库的编译

这几天搞FFT,在PC端和ARM端分别编译了。两个高效的FFT函数库。做一下记录,供大家学习。


下面的过程包含库、头文件及pkgconfig文件路径

将非标准路经加入 /etc/ld.so.conf,然后运行 ldconfig 生成 /etc/ld.so.cache。 ld.so 加载共享库的时候,会从 ld.so.cache 查找。

vi ~/.bashrc

export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:./lib

export PKG_CONFIG_PATH=$PKG_CONFIG_PATH:./lib/config

设置三个环境变量

fftw3 PC版与ARM版

一、PC版:
//编译fftw3源代码库
./configure --prefix=/opt/fftw3 --enable-openmp --enable-mpi --enable-sse2 --enable-threads --enable-shared
make
make install

//设置环境变量
export PKG_CONFIG_PATH=$PKG_CONFIG_PATH:/opt/fftw3/lib/pkgconfig

//程序编译
gcc -o fftw3_pc fftw3_prb.c `pkg-config --libs --cflags fftw3`


二、ARM版
//编译fftw3源代码库(由于gcc-4.5.1版本太老,不能开启--enable-neno;之前使用gcc-4.8.1可以编译成功)
./configure --with-slow-timer --host=arm-linux-gnueabi --enable-single --enable-shared --enable-threads "CC=arm-none-linux-gnueabi-gcc -march=armv7-a -mfloat-abi=softfp" --prefix=/opt/fftw3-arm-1
make
make install

//将程序通过SD卡拷贝到开发板,之前直接用filezilla软件传输一直出现段错误
cp libfftw3f.so.3.4.4 /lib
chmod +x libfftw3f.so.3.4.4
ln -s libfftw3f.so.3.4.4 libfftw3f.so.3  //建立link,-s是代号(symbolic)的意思,ls -l可以现实link的路径
ln -s libfftw3f.so.3.4.4 libfftw3f.so

//程序编译
arm-none-linux-gcc -o fftw3_arm fftw3f_prb.c `pkg-config --libs --cflags fftw3f`    //这里因为是编译出的是float版,使用pkg-config --libs --cflags fftw3f 比PC版多个f



三、树莓派2-ubuntu14.04板上编译FFTW
./configure --prefix=/opt/fftw3 --enable-openmp --enable-mpi --enable-threads --enable-shared --enable-neon --enable-single
make
make install





四、Qt5-ARM编译
./configure -release -opensource -xplatform linux-arm-gnueabi-g++ -prefix /opt/Qt-5.5.0-arm-1/ -no-c++11 -no-opengl
将qt.pro中addModule(qt3d, qtdeclarative qtimageformats)
addModule(qtcanvas3d, qtdeclarative)两句屏蔽掉
然后make
make install




五、ProjectNE10 树莓派2版编译
mkdir BUILD && cd BUILD
cmake -DGNULINUX_PLATFORM=ON -DNE10_BUILD_SHARED=ON -DNE10_LINUX_TARGET_ARCH=armv7 ..
make

//编译程序
gcc -o my_NE10_test my_NE10_test.c -L /opt/NE10 -lNE10

你可能感兴趣的:(linux)