LinuxSir.cn,穿越时空的Linuxsir!

 找回密码
 注册
搜索
热搜: shell linux mysql
查看: 883|回复: 4

gcc链接问题,求助!

[复制链接]
发表于 2006-8-2 11:43:24 | 显示全部楼层 |阅读模式
共三个文件,a.cpp, a.h, main.cpp
使用gcc编译
gcc -c a.cpp
然后把a.o打到一个库文件里面
ar rcu a.a a.o
编译main.cpp
gcc -c main.cpp
最后链接
gcc -o main -lstdc++ main.o a.a
提示 undefined reference to `A:rint(void)'
A:rint是a.cpp里面的类A的成员函数

奇怪的是,直接用a.o链接却是成功的
gcc -o main -lstdc++ a.o main.o

这个问题怎么解决阿?
发表于 2006-8-2 12:46:06 | 显示全部楼层
感觉代码可能有问题。不过可以先试试:
ar rcu liba.a a.o
...
g++ -L. -o main main.o -la
回复 支持 反对

使用道具 举报

 楼主| 发表于 2006-8-2 12:54:43 | 显示全部楼层
这样链接还是一样的错误,用gcc和g++编译链接错误都是相同的。
回复 支持 反对

使用道具 举报

发表于 2006-8-2 15:32:23 | 显示全部楼层
-ldl 呢?
回复 支持 反对

使用道具 举报

发表于 2006-8-2 16:28:34 | 显示全部楼层
偶觉得不可能有技术上的问题的呵呵,多半是粗心
1. 代码问题:
看看你的A:rint(void)这个的定义和调用是否一致
2. 编译和链接问题:
保证你对所有文件的编译,以及最后的链接,都是用g++进行的
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

快速回复 返回顶部 返回列表