天下网吧 >> 网吧天地 >> 网吧技术 >> 网吧系统 >> 正文

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

2014-10-9不详佚名

  最近一个星期都在搞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

本文来源:不详 作者:佚名

声明
声明:本站所发表的文章、评论及图片仅代表作者本人观点,与本站立场无关。若文章侵犯了您的相关权益,请及时与我们联系,我们会及时处理,感谢您对本站的支持!联系email:support@txwb.com,系统开号,技术支持,服务联系QQ:1175525021本站所有有注明来源为天下网吧或天下网吧论坛的原创作品,各位转载时请注明来源链接!
天下网吧·网吧天下
  • 本周热门
  • 本月热门
  • 阅读排行