码迷,mamicode.com
首页 > 其他好文 > 详细

OK335xS canutils deal with compile error

时间:2015-09-04 15:40:47      阅读:280      评论:0      收藏:0      [点我收藏+]

标签:

/**************************************************************************************
 *                  OK335xS canutils deal with compile error
 * 声明:
 *     本文主要是记录解决编译can测试工具(canutils)时遇到的一些编译错误。
 *
 *                                          2015-9-4 晴 深圳 南山平山村 曾剑锋
 *************************************************************************************/

                \\\\\\\\\\\\\\\\\\\\\-*- 目录 -*-////////////////////
                |      一、参考文章:                               
                |      二、编译后简略的3层文件结构(tree -L 3):     
                |      三、libsocketcan make install 问题:         
                |      四、canutils 找不到 libsocketcan 问题:      
                |      五、canutils 安装权限不足:                  
                \\\\\\\\\\\\\\\\\\\\\\\\\\\//////////////////////////


一、参考文章:
    1. 有谁编译过canutils-4.0.6的吗?
        http://bbs.csdn.net/topics/390465516
    2. AM335X DCAN Driver Guide
        http://processors.wiki.ti.com/index.php/AM335X_DCAN_Driver_Guide#CAN_Utilities
    3. AM335x DCAN driver compile issues
        https://e2e.ti.com/support/embedded/linux/f/354/t/270303

二、最后编译出来简略的3层文件结构(tree -L 3):
    .
    ├── canutils-4.0.6
    │   ├── aclocal.m4
    │   ├── AUTHORS
    │   ├── autogen.sh
    │   ├── ChangeLog
    │   ├── config
    │   ├── config.log
    │   ├── config.status
    │   ├── configure
    │   ├── configure.ac
    │   ├── COPYING
    │   ├── GNUmakefile
    │   ├── GNUmakefile.am
    │   ├── GNUmakefile.in
    │   ├── include
    │   ├── install
    │   │   ├── bin
    │   │   ├── lib
    │   │   ├── sbin
    │   │   └── share
    │   ├── libtool
    │   ├── man
    │   ├── remake.sh
    │   └── src
    ├── canutils-4.0.6.tar.bz2
    ├── libsocketcan-0.0.8
    │   ├── aclocal.m4
    │   ├── autogen.sh
    │   ├── config
    │   ├── config.log
    │   ├── config.status
    │   ├── configure
    │   ├── configure.ac
    │   ├── GNUmakefile
    │   ├── GNUmakefile.am
    │   ├── GNUmakefile.in
    │   ├── include
    │   ├── install
    │   │   ├── include
    │   │   ├── lib
    │   │   └── share
    │   ├── INSTALL
    │   ├── libtool
    │   ├── README
    │   ├── remake.sh
    │   ├── src
    │   └── tests
    └── libsocketcan-0.0.8.tar.bz2

三、libsocketcan make install 问题:
    1. 出错现象:
        Qt@zengjf:~/practice/c/canTest/libsocketcan-0.0.8$ make install
        Making install in include
        make[1]: Entering directory `/home/Qt/practice/c/canTest/libsocketcan-0.0.8/include        make[2]: Entering directory `/home/Qt/practice/c/canTest/libsocketcan-0.0.8/include        make[2]: Nothing to be done for `install-exec-am.
        test -z "/home/Qt/practice/c/canTest/libsocketcan-0.0.8/include" || /bin/mkdir -p 
            "/home/Qt/practice/c/canTest/libsocketcan-0.0.8/include"
        /usr/bin/install -c -m 644  libsocketcan.h can_netlink.h 
            /home/Qt/practice/c/canTest/libsocketcan-0.0.8/include/.
        /usr/bin/install: `libsocketcan.h and 
            `/home/Qt/practice/c/canTest/libsocketcan-0.0.8/include/./libsocketcan.h are the same file
        /usr/bin/install: `can_netlink.h and 
            `/home/Qt/practice/c/canTest/libsocketcan-0.0.8/include/./can_netlink.h are the same file
        make[2]: *** [install-nobase_includeHEADERS] Error 1
        make[2]: Leaving directory `/home/Qt/practice/c/canTest/libsocketcan-0.0.8/include        make[1]: *** [install-am] Error 2
        make[1]: Leaving directory `/home/Qt/practice/c/canTest/libsocketcan-0.0.8/include        make: *** [install-recursive] Error 1
    2. 解决方法:
        export GNUEABI=arm-linux-gnueabihf
        export CC=$GNUEABI-gcc
        export LD=$GNUEABI-ld
        export NM=$GNUEABI-nm
        export AR=$GNUEABI-ar
        export RANLIB=$GNUEABI-ranlib
        export CXX=$GNUEABI-c++filt
        export INSTALL_PATH=$PWD
        export PREFIX=$INSTALL_PATH/
        export CROSS_COMPILE_PREFIX=$PREFIX
        export PATH=$TOOL_CHAIN_PATH/bin:$PATH

        #./configure --host=arm-linux --prefix=$PREFIX --enable-debug     
        # 官网给出的安装目录出错导致的,给出合适的安装路径
        ./configure --host=arm-arago-linux --prefix=$PREFIX/install --enable-debug

四、canutils 找不到 libsocketcan 问题:
    1. 错误现象:
        checking for pkg-config... /home/Qt/ti-processor-sdk-linux-am335x-evm-01.00.00.00/linux-devkit/sysroots/i686-arago-linux/usr/bin/pkg-config
        checking pkg-config is at least version 0.9.0... yes
        checking for libsocketcan... no
        configure: error: *** libsocketcan version above 0.0.8 not found on your system
    2. 解决方法:
        export GNUEABI=arm-linux-gnueabihf
        export CC=$GNUEABI-gcc
        export LD=$GNUEABI-ld
        export NM=$GNUEABI-nm
        export AR=$GNUEABI-ar
        export RANLIB=$GNUEABI-ranlib
        export CXX=$GNUEABI-c++
        export PREFIX=$FILESYS_PATH/usr
        export CROSS_COMPILE_PREFIX=$PREFIX
        export PATH=$TOOL_CHAIN_PATH/bin:$PATH
        export LIBSOCKETCAN_INSTALL_DIR=$LIBSOCKETCAN_PATH/install
        export PKG_CONFIG_PATH=$LIBSOCKETCAN_PATH/config
        export LD_LIBRARY_PATH=${LIBDIR}:${LD_LIBRARY_PATH}
        export LD_RAN_PATH=${LIBDIR}:${LD_RAN_PATH}:/home/Qt/practice/c/canTest/libsocketcan-0.0.8/src/.libs
        export LDFLAGS="-Wl,--rpath -Wl,$LIBSOCKETCAN_INSTALL_DIR/lib"
        export INCLUDES="-I$LIBSOCKETCAN_INSTALL_DIR/include"
        
        #./configure --host=arm-arago-linux --prefix=$PREFIX --enable-debug
        # 加上libsocketcan库的位置
        ./configure --host=arm-linux --prefix=$PREFIX/install --enable-debug libsocketcan_LIBS=-lsocketcan LDFLAGS="-L$PWD/../libsocketcan-0.0.8/install/lib" libsocketcan_CFLAGS=-I$PWD/../libsocketcan-0.0.8/install/include

五、canutils 安装权限不足:
    1. 错误现象:
        Qt@zengjf:~/practice/c/canTest/canutils-4.0.6$ make install
        Making install in include
        make[1]: Entering directory `/home/Qt/practice/c/canTest/canutils-4.0.6/include        make[2]: Entering directory `/home/Qt/practice/c/canTest/canutils-4.0.6/include        make[2]: Nothing to be done for `install-exec-am.
        make[2]: Nothing to be done for `install-data-am.
        make[2]: Leaving directory `/home/Qt/practice/c/canTest/canutils-4.0.6/include        make[1]: Leaving directory `/home/Qt/practice/c/canTest/canutils-4.0.6/include        Making install in config
        make[1]: Entering directory `/home/Qt/practice/c/canTest/canutils-4.0.6/config        make[2]: Entering directory `/home/Qt/practice/c/canTest/canutils-4.0.6/config        make[2]: Nothing to be done for `install-exec-am.
        test -z "/usr/install/lib/pkgconfig" || /bin/mkdir -p "/usr/install/lib/pkgconfig"
        /bin/mkdir: cannot create directory `/usr/install: Permission denied
        make[2]: *** [install-pkgconfigDATA] Error 1
        make[2]: Leaving directory `/home/Qt/practice/c/canTest/canutils-4.0.6/config        make[1]: *** [install-am] Error 2
        make[1]: Leaving directory `/home/Qt/practice/c/canTest/canutils-4.0.6/config        make: *** [install-recursive] Error 1
    2. 解决方法:
        export GNUEABI=arm-linux-gnueabihf
        export CC=$GNUEABI-gcc
        export LD=$GNUEABI-ld
        export NM=$GNUEABI-nm
        export AR=$GNUEABI-ar
        export RANLIB=$GNUEABI-ranlib
        export CXX=$GNUEABI-c++
        #export PREFIX=$FILESYS_PATH/usr        # 换一个有权限的路径
        export PREFIX=$PWD
        export CROSS_COMPILE_PREFIX=$PREFIX
        export PATH=$TOOL_CHAIN_PATH/bin:$PATH
        export LIBSOCKETCAN_INSTALL_DIR=$LIBSOCKETCAN_PATH/install
        export PKG_CONFIG_PATH=$LIBSOCKETCAN_PATH/config
        export LD_LIBRARY_PATH=${LIBDIR}:${LD_LIBRARY_PATH}
        export LD_RAN_PATH=${LIBDIR}:${LD_RAN_PATH}:/home/Qt/practice/c/canTest/libsocketcan-0.0.8/src/.libs
        export LDFLAGS="-Wl,--rpath -Wl,$LIBSOCKETCAN_INSTALL_DIR/lib"
        export INCLUDES="-I$LIBSOCKETCAN_INSTALL_DIR/include"
        
        #./configure --host=arm-arago-linux --prefix=$PREFIX --enable-debug
        ./configure --host=arm-linux --prefix=$PREFIX/install --enable-debug libsocketcan_LIBS=-lsocketcan LDFLAGS="-L$PWD/../libsocketcan-0.0.8/install/lib" libsocketcan_CFLAGS=-I$PWD/../libsocketcan-0.0.8/install/include

 

OK335xS canutils deal with compile error

标签:

原文地址:http://www.cnblogs.com/zengjfgit/p/4781773.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!