博文

目前显示的是 一月, 2017的博文

【转】Linux程序编译链接动态库版本的问题

转自 http://littlewhite.us/archives/301 作者:littlewhite  发表回复 不同版本的动态库可能会不兼容,如果程序在编译时指定动态库是某个低版本,运行是用的一个高版本,可能会导致无法运行。Linux上对动态库的命名采用libxxx.so.a.b.c的格式,其中a代表大版本号,b代表小版本号,c代表更小的版本号,我们以Linux自带的cp程序为例,通过ldd查看其依赖的动态库 $ ldd /bin/cp linux-vdso.so.1 => (0x00007ffff59df000) libselinux.so.1 => /lib64/libselinux.so.1 (0x00007fb3357e0000) librt.so.1 => /lib64/librt.so.1 (0x00007fb3355d7000) libacl.so.1 => /lib64/libacl.so.1 (0x00007fb3353cf000) libattr.so.1 => /lib64/libattr.so.1 (0x00007fb3351ca000) libc.so.6 => /lib64/libc.so.6 (0x00007fb334e35000) libdl.so.2 => /lib64/libdl.so.2 (0x00007fb334c31000) /lib64/ld-linux-x86-64.so.2 (0x00007fb335a0d000) libpthread.so.0 => /lib64/libpthread.so.0 (0x00007fb334a14000) 左边是依赖的动态库名字,右边是链接指向的文件,再查看libacl.so相关的动态库 $ ll /lib64/

LEMON library 32位安装选项

CFLAGS=-m32 CXXFLAGS=-m32 cmake -DCMAKE_INSTALL_PREFIX=/opt/lemon-1.3.1 -DCOIN_ROOT_DIR=/opt/COIN-OR-latest .. CFLAGS=-m32 CXXFLAGS=-m32 cmake -DBUILD_SHARED_LIBS=TRUE -DCMAKE_INSTALL_PREFIX=/opt/lemon-1.3.1 -DCOIN_ROOT_DIR=/opt/COIN-OR-latest ..

GCC 源码编译参数选项

GCC 编译参数 可能需要加入gfrotran的编译参数,需要重新编译 Using built-in specs. COLLECT_GCC=gcc COLLECT_LTO_WRAPPER=/usr/lib/gcc/x86_64-linux-gnu/4.7/lto-wrapper Target: x86_64-linux-gnu Configured with: ../src/configure -v --with-pkgversion='Ubuntu/Linaro 4.7.4-3ubuntu12' --with-bugurl=file:///usr/share/doc/gcc-4.7/README.Bugs --enable-languages=c,c++,go,fortran,objc,obj-c++ --prefix=/usr --program-suffix=-4.7 --enable-shared --enable-linker-build-id --libexecdir=/usr/lib --without-included-gettext --enable-threads=posix --with-gxx-include-dir=/usr/include/c++/4.7 --libdir=/usr/lib --enable-nls --with-sysroot=/ --enable-clocale=gnu --enable-libstdcxx-debug --enable-gnu-unique-object --disable-libmudflap --enable-plugin --with-system-zlib --enable-objc-gc --with-cloog --enable-cloog-backend=ppl --disable-cloog-version-check --disable-ppl-version-check --enable-multiarch --disable-werror --with-arch-32=i686 --with-abi=m64 --with-multilib-list=m32,m64,mx32 --with-tune=generic -

COIN-OR 源码32位安装说明

COIN-OR 编译参数 ../configure CCFLAGS="-m32" CPPFLAGS="-m32 " CXXFLAGS="-m32" CFLAGS="-m32" --prefix=/opt/COIN-OR-latest -C FFLAGS="-m32" --enable-static COIN-OR 源码编译注意事项: 1. 在官网下载各个组件的单独源码包,不要下载整个大包。下载整个大包容易导致由于部分组件编译不过其它组件也没有编译通过。 2. 修改/etc/ld.so.conf 文件,加入动态库路径。 3. 保存上述文件,并执行命令 ldconfig /etc/ld.so.conf 4. 如果路径中有系统路径,需要在make 和make install 两个命令前增加sudo。 COIN-OR 组件安装顺序 1. CoinUtils 2. Osi 3. Clp 4. Cgl 5. Cbc