Linux编译程序时的一些注意事项

239 篇文章 2 订阅
最近一个星期都在搞Linux下的一些开源项目,其实很早之前就有捣鼓过,这次再次遇到之前编译程序时遇到的一些问题,因此在这里做一下记录。
   
    一、在 C++程序里要包含C语言写的程序的头文件时,在 C++文件里应该这样来包含:
   
    extern "C"
   
    {
   
    #include "你的头文件"
   
    }
   
    注意:这里是大写的C.
   
    举个例子:在一个目录里有main.cpp hello.c hello.h三个文件,而main.cpp文件里要用到hello.c里的函数,那么在main.cpp里就要通过包含hello.h头文件来调用hello.c里的函数,因此在mian.cpp里应该这样写:
   
    extern "C"
   
    {
   
    #include "hello.h"
   
    }
   
    否则编译链接时会提示找不到相应的函数,比如:
   
    :(。text+0x7): undefined reference to …
   
    二、编译一些程序时,可能会遇到找不到相应的库等问题,这时可以通过 下载相应的库的源码来自己编译、安装。
   
    自己通过 下载源码来编译安装的库大多数情况下会默认安装在/usr/local目录下,虽然已经编译安装了,但编译程序时还会提示找不到对应的库,此时需要在/etc/ld.so.conf里添加一行/usr/local/lib,还需要通过命令:
   
    ldconfig -v
   
    来更新。
   
    所以,以后每次往/usr/local/lib里添加库文件时最好都ldconfig -v 一下。
   
    三。 查看可执行文件所依赖的库
   
    1. PC Linux上:
   
    如:#ldd /mypath/hello
   
    2. arm Linux上:
   
    如:# arm- linux-readelf -d hello
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值