VS2005如何引用外部库.

yanjinbin 2011-11-09 10:51:51
1.使用#pragma comment(lib,"..\\test\\debug\\test.lib") 加载成功.

2.然后我在使用项目属性方式加载:
a.在项目属性 -> C\C++ -> 常规 -> 附加包含目录: ../test/debug
b.在项目属性 -> 链接器 -> 输入 ->附加依赖项:test.lib

我发现在方式1加载成功。
但我使用方式2提示错误:无法打开文件“test.lib”文件.

为什么会这样呢.
...全文
282 9 打赏 收藏 转发到动态 举报
写回复
用AI写文章
9 条回复
切换为时间正序
请发表友善的回复…
发表回复
myupub 2011-11-10
  • 打赏
  • 举报
回复
test.lib是用自己写的DLL编译出来的库吧?请确保你的DLL代码里函数名是否已导出,如果已导出,请看你调用时的函数名是否与你在DLL里的定义一致
zhou1xp 2011-11-10
  • 打赏
  • 举报
回复
你添加头文件没有?还有编译库的时候是ANSI还是UNICODE都要考虑的
zhou1xp 2011-11-10
  • 打赏
  • 举报
回复
在程序中你添加这个库的头文件没有啊,需要头文件的,还有你的库是ANSI方式下编译的还是unicode下编译的都要考虑
yanjinbin 2011-11-10
  • 打赏
  • 举报
回复
我误导大家了:
#pragma comment(lib,"..\\test\\debug\\test.lib")
这个也是加载不成功,只是不会提示错误.

因为我在代码里面使用库文件的函数,发现提示:无法解析的外部符号 "int __cdecl test(void)"

所以不是路径的问题,因为是库文件的项目属性和exe文件的项目属性不匹配导致的

库项目 :C 项目 (编译为 C 代码(/TC))
exe项目 :MFC项目(编译为 C++ 代码(/TP))

我对比了项目属性,看除了
配置属性 ->C\C++ -> 高级 -> 编译为: ...
这句有区别,期于为发现问题.

但还是加载不了库里面的函数. 求解...
yanjinbin 2011-11-10
  • 打赏
  • 举报
回复
知道是什么问题了,是因为一个C++项目调用一个C库,需要使用extern "C"来调用,就可以了。
uc_fly 2011-11-10
  • 打赏
  • 举报
回复
在项目属性 -> 链接器 -> 输入 ->附加依赖项: ..\test\debug\test.lib
yanjinbin 2011-11-10
  • 打赏
  • 举报
回复
按楼上设置,提示错误:
warning LNK4044: 无法识别的选项“/test.lib”;已忽略

什么原因啊.
yanjinbin 2011-11-10
  • 打赏
  • 举报
回复
关于字符集:两个项目都是选择多字符集支持

关于运行集:都设置为MTD模式

test.lib 本来是.exe项目后来我把它转换为静态库(.lib)项目.
函数不存在导出的问题.

还是不行,郁闷了。

gameslq 2011-11-09
  • 打赏
  • 举报
回复
在项目属性 -> 链接器 -> 输入 ->附加依赖项: ../test/debug
/test.lib

16,550

社区成员

发帖
与我相关
我的任务
社区描述
VC/MFC相关问题讨论
社区管理员
  • 基础类社区
  • Creator Browser
  • encoderlee
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

        VC/MFC社区版块或许是CSDN最“古老”的版块了,记忆之中,与CSDN的年龄几乎差不多。随着时间的推移,MFC技术渐渐的偏离了开发主流,若干年之后的今天,当我们面对着微软的这个经典之笔,内心充满着敬意,那些曾经的记忆,可以说代表着二十年前曾经的辉煌……
        向经典致敬,或许是老一代程序员内心里面难以释怀的感受。互联网大行其道的今天,我们期待着MFC技术能够恢复其曾经的辉煌,或许这个期待会永远成为一种“梦想”,或许一切皆有可能……
        我们希望这个版块可以很好的适配Web时代,期待更好的互联网技术能够使得MFC技术框架得以重现活力,……

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