zoukankan      html  css  js  c++  java
  • OK335xS canutils deal with compile error

    /**************************************************************************************
     *                  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
  • 相关阅读:
    图片无缝横向滚动
    MySQL命令小结
    Git初级
    VS2012 创建的entityframework 4.1版本
    IE10 下系统出现Unable to get property 'PageRequestManager' of undefined or null reference错误
    MIME Types
    不兼容的数据类型
    使用Lambda .map函数将入参List转换至其它List
    MySQL中那种数据类型是只有true和false的
    ELK Stack
  • 原文地址:https://www.cnblogs.com/zengjfgit/p/4781773.html
Copyright © 2011-2022 走看看