已成功连接到库却undefined reference to 错误
来源:互联网 发布:美国非农数据公布网站 编辑:程序博客网 时间:2024/05/21 17:05
遇到了一个非常诡异的事情,makefile 已经写好:
`cppflags=
headers=-I ../../inc
libs=-lpuck -L ../../lib
../bin/input: input.cpp
mkdir -p ../bin
g++ $(cppflags) $(headers) $(libs) -o $@ $^`
本来这个makefile 在centos下是没有问题的,然而在ubuntu下出现了问题,虽然已经成功链接到库文件,但是还是会有undefined reference to的错误,通常来讲,这种问题只会没有成功连接到库文件的时候才会出现,gcc/++在编译时查找库文件的顺序是:
1、-L 指定的路径, 从左到右依次查找
2、由 环境变量 LIBRARY_PATH 指定的路径,使用”:”分割从左到右依次查找
3、/etc/ld.so.conf 指定的路径顺序
4、/lib 和 /usr/lib (64位下是/lib64和/usr/lib64)
所以我这个makefile直接就满足了第一条,但还是有错误,在网上查了一下,竟然调整了一下连接选项的位置就可以了!!:
`cppflags=
headers=-I ../../inc
libs=-lpuck -L ../../lib
../bin/input: input.cpp
mkdir -p ../bin
g++ -o $@ $^ $(cppflags) $(headers) $(libs) `
不知道这是什么原因,看来是不同系统下这个gcc/++实现也是有所差距,有知道的还望指明原因。。
有一点眉目,但也不能解释现在这个问题,对于-l链接库的顺序,编译器是从右往左连接的,如果链接库之间有依赖关系,应当注意链接库的顺序,比如 库A 依赖 库B,那么写成 -lB -lA就会报错。
- 已成功连接到库却undefined reference to 错误
- 已成功连接到库却undefined reference to 错误
- 连接错误undefined reference to `pthread_create'
- 错误提示:连接 built-in.o 提示 undefined reference to
- 错误:undefined reference to `__gxx_personality_v0'
- undefined reference to 链接错误
- undefined reference to `clock_nanosleep' 错误
- undefined reference to 'pthread_create' 错误
- 错误:undefined reference to `__gxx_personality_v0' .
- NDK undefined reference to 错误
- undefined reference to错误原因
- 错误:undefined reference to `_imp___ZN12QSqlDatabase17defaultConnectionE'
- undefined reference to 'socket' 错误
- undefined reference to gettid() 错误
- undefined reference to `SSL_library_init'错误
- undefined reference to `__aeabi_uidivmod'和undefined reference to `__aeabi_uidiv'错误
- undefined reference to `libiconv(已解决)
- 编译错误:undefined reference to `vtable for
- Leetcode 649, Split Array to Consecutive Subsequences
- jquery操作checkbox
- 安装boost遇到问题,libboost_iostreams.a总是编译不出来
- 解决android studio引用远程仓库下载慢(JCenter下载慢)
- 【noip 1999】旅行家的预算
- 已成功连接到库却undefined reference to 错误
- javascript之AJAX(二)json
- C和指针之删除字符串第一次出现的子串
- strlen /sizeof/ 0,'\0','0'中的陷阱+补充字符串字符数与数组大小相等
- codeforces D.Teams Formation
- Lintcode-动态规划-数字三角形
- zzzcms网站微信分享的链接打开500报错,解决办法
- 拦截器+okf封装
- 回家 (无向图割点)