gcc新版本引起的编译错误(命令执行时的外部库输入位置)
来源:互联网 发布:字符串转json 编辑:程序博客网 时间:2024/05/15 23:51
昨天,遇到一个比较bug的错误,用gcc来编译几个简单的文件出错,编译环境为x86_64的Ubuntu12.04,gcc版本号如下:
gcc (Ubuntu/Linaro 4.6.3-1ubuntu5) 4.6.3
编译如下命令,主要是需要添加一个常用数学库libm.so。编译的语法如下出现了如下的错误:
gcc -lm main.c bp_alg_api.c -o test
还是会出现没有链接时指定的库文件lm。
如果这样就可以成功:
gcc main.c bp_alg_api.c -lm -o test
也许上面的命令执行更加清晰,先把源文件编译,然后再去处理链接,链接的库需要在源文件的后面。体现规范和编译的流程性。
至于在低版本比如gcc4.5。或者说常用的arm交叉编译器时,上述两种方式的处理过程都是正常的。
gcc编译出的目标文件,再使用arm交叉编译gcc来链接出可执行文件,会出现Relocation in generic ELF(M:3)的错误。需要明确编译和链接采用的编译器属性要一致,gcc还是交叉编译gcc。两者不能混淆。
0 0
- gcc新版本引起的编译错误(命令执行时的外部库输入位置)
- gcc编译执行时需要执行的库
- inline引起的编译错误
- return的位置引起的错误
- gcc引用静态库的编译错误
- python升级引起的pip执行错误
- python升级引起的pip执行错误
- 几个gcc编译的错误
- VS2010之MFC编译库引起的错误
- android编译时Notification版本引起的错误
- mspdb80.dll引起的编译错误
- 函数调用方式引起的编译错误
- 由编译警告引起的程序错误
- 内存不足引起的编译(make)错误
- gcc的编译命令选项
- ipconfig不是内部或外部命令,引起的血案
- 一个偶然错误引起对gcc和g++的认识
- 一个偶然错误引起对gcc和g++的认识
- iOS—SQLite 3封装库FMDB
- 昨天又面试失败,但是我要屡败屡战
- JVectorMap是一个优秀的兼容性强的jQuery地图插件。
- cocos2d-x-3.1 Text Labels(官方译文)
- java.lang.SecurityException: caller uid 10039 is different than the authenticator's uid
- gcc新版本引起的编译错误(命令执行时的外部库输入位置)
- Zigbee 点对点通信
- 数据库虫洞与pager
- GridView中如何在无数据时显示空行和表头
- 谷歌在中国的遭遇战
- 已经是死掉的第二天了,谷歌会复活吗???
- leetcode: N-Queens
- php for linux 图片无法显示问题
- 基于hadoop 2.0 的hbase "Unable to load native-hadoop library for your platform" 问题解决