静态链接库的使用问题(pragma comment)

清钟沁桐 2008-04-24 10:55:33

在设计静态链接库的时候是不是必须保证每个产生库的代码相互独立呢?因为在使用
我创建了两个有耦合的静态链接库静态链接库的时候,由于
lib2.cpp 使用了lib1.cpp中的一些函数
结果在使用 lib2.h 和lib1.h的时候
只能使用
#include"lib1.h"
#include"lib2.h"
#pragma comment(lib,"lib2.lib")
而不能是
#include"lib1.h"
#pragma comment(lib,"lib1.lib")
#include"lib2.h"
#pragma comment(lib,"lib2.lib")
否则在错误报告中提示 函数重定义了!
应该怎么解决呢?
刚才仔细尝试了下
发现使用
#include"lib1.h"
#include"lib2.h"
#pragma comment(lib,"lib1.lib")
#pragma comment(lib,"lib2.lib")
仍来出现上面的重定义错误
但是使用
#include"lib1.h"
#include"lib2.h"
#pragma comment(lib,"lib2.lib")
#pragma comment(lib,"lib1.lib")
就正确了
也就是说
#include"lib1.h"
#include"lib2.h"
#pragma comment(lib,"lib2.lib")
#pragma comment(lib,"lib1.lib")和
#include"lib1.h"
#include"lib2.h"
#pragma comment(lib,"lib2.lib")
效果是一样的?不知道这个又怎么解释
...全文
264 8 打赏 收藏 转发到动态 举报
写回复
用AI写文章
8 条回复
切换为时间正序
请发表友善的回复…
发表回复
清钟沁桐 2008-06-10
  • 打赏
  • 举报
回复
终于可以确定
#pragma comment(lib,"lib2.lib")
#pragma comment(lib,"lib2.lib")
不会出现错误
也就是编译器不会添加两次 而造成重定义错误
meiZiNick 2008-04-30
  • 打赏
  • 举报
回复
等待牛人来答.
清钟沁桐 2008-04-25
  • 打赏
  • 举报
回复
函数的定义没有重复的
只是 lib2.c中有些函数需要使用lib1.c中定义的函数
所以在定义lib2.c中我包含了 lib1.c文件
但是却没有包含lib1.h 文件进行重新声明呀 !!
按理说程序应该只是对于.h中声明过的函数才会引出函数接口的
不想低调 2008-04-25
  • 打赏
  • 举报
回复
[Quote=引用 1 楼 jillnicky 的回复:]
up
[/Quote]
lin_style 2008-04-25
  • 打赏
  • 举报
回复
VC6?
lala_benben 2008-04-25
  • 打赏
  • 举报
回复
。。。你在lib2中加载了lib1。。。或者你在定义函数的时候有重复
  • 打赏
  • 举报
回复
没有深研究过,呵呵!帮顶1
  • 打赏
  • 举报
回复
up

70,006

社区成员

发帖
与我相关
我的任务
社区描述
C语言相关问题讨论
社区管理员
  • C语言
  • 花神庙码农
  • 架构师李肯
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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