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
  • 相关阅读:
    【Delphi】VCL 使用TCoolBar控件,在系统触发UAC界面时,引发CMSysFontChanged事件导致界面卡死或弹出System Error 1400错误
    【Delphi】 FMX 下 TImageList的使用方法:获取其中一张图片
    如何在电脑睡眠状态下保持程序运行
    【Delphi】使用TIdHTTPServer开发HTTP服务端在Windows2008部署后,外网无法访问
    fedora 25 virtualbox 增强功能安装
    在Win8系统中如何将一般类型的文件放在开始菜单中
    mac上的替代软件
    spring boot 1.4.1 with jsp file sample
    macbook pro 重装系统
    找不到或无法加载主类 org.codehaus.plexus.classworlds.launcher.Launcher
  • 原文地址:https://www.cnblogs.com/zengjfgit/p/4781773.html
Copyright © 2011-2022 走看看