VC 2005的编译连接静态库问题

HouJinkun2005 2010-01-31 06:41:57
现在有两个静态库, A.lib, B.lib还有一个程序 C.exe

如今 B.lib中有调用到 A.lib.

C.exe要使用到A.lib和B.lib.

使用
#pragma comment(lib,"a.lib")
#pragma comment(lib,"b.lib")

或者
#pragma comment(lib,"b.lib")
#pragma comment(lib,"a.lib")

发现始终都会报告2019的连接错误,就是 b.lib中有调用到a.lib的函数,然后连接找不到对应的执行函数。

我试过,索性把b.lib不引入,直接把全部代码文件引入c.exe中,是可以编译通过的,但是放到lib再引入就完蛋了。

这应该是个连接的顺序问题。

VC 2005下,如何调整这种连接顺序呢?
...全文
64 5 打赏 收藏 转发到动态 举报
写回复
用AI写文章
5 条回复
切换为时间正序
请发表友善的回复…
发表回复
cnzdgs 2010-01-31
  • 打赏
  • 举报
回复
与导入lib的顺序无关。估计是声明写的不对,从错误信息中随便找一条贴上来,把与该错误相关的声明和定义也贴上,如果声明或定义位于某个名空间或类中,也具体描述一下。
明天去抢劫 2010-01-31
  • 打赏
  • 举报
回复
a和b都是静态库,b编译后不会甩掉a.lib的,b里面会包含对a.lib的引用信息
把错误信息贴上来
sjdev 2010-01-31
  • 打赏
  • 举报
回复
既然是静态库,按说B编译之后就可以甩掉a.lib了。
HouJinkun2005 2010-01-31
  • 打赏
  • 举报
回复
[Quote=引用 1 楼 sjdev 的回复:]
b中#pargma comment(lib, "a.lib")呢?
[/Quote]

试过,不行。
sjdev 2010-01-31
  • 打赏
  • 举报
回复
b中#pargma comment(lib, "a.lib")呢?

15,471

社区成员

发帖
与我相关
我的任务
社区描述
VC/MFC 进程/线程/DLL
社区管理员
  • 进程/线程/DLL社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧