如何使用lib库的问题

qqqqqqpppp 2011-02-14 10:19:01
准备在自己的工程里调用7zip压缩。
从7zip中编译出LZMA.lib,在自己的工程中实验过静态链接和动态链接。程序运行时总提示
“没有找到LZMA.dll,因此这个应用程序未能启动。。。。”
当时使用lib就是不想带一堆dll,问题出来哪里?请各位指点,谢谢!
...全文
231 13 打赏 收藏 转发到动态 举报
写回复
用AI写文章
13 条回复
切换为时间正序
请发表友善的回复…
发表回复
qqqqqqpppp 2011-02-15
  • 打赏
  • 举报
回复
谢谢各位细心的答复。
关于包含dll动态生成的问题,因为运行环境问题,不太适用。
那么7zip包里如何生成一个纯的静态库呢?
再次感谢各位的答复!
zaiguo 2011-02-14
  • 打赏
  • 举报
回复
这个lib需要dll才能工作,不是纯的静态库。
贪食蛇男 2011-02-14
  • 打赏
  • 举报
回复
动态链接时用.lib只是做符号引用的解析,也就是从 lib里抽取用到的符号,写入目标文件头的导入表里,链接可以通过,但是运行时,这个可执行体要根据自己导入表里的内容在 path 下寻找DLL(so),找不到自然就报错。

你可以静态链接或把用到的动态库文件放到可执行体目录下,或者放在PATH的任何目录下。
zpf82118 2011-02-14
  • 打赏
  • 举报
回复
静态链接和静态lib是两回事
你现在用的lib仅用于链接,但运行的时候还是需要dll的
如果不想要dll,就需要生产静态lib
  • 打赏
  • 举报
回复
同意,需要重新按照静态库进行编译出一个lib来,不要产生dll
bluesky12312388 2011-02-14
  • 打赏
  • 举报
回复
重新编译包含所有功能的静态库,然后在链接到主程序中去
kingstarer 2011-02-14
  • 打赏
  • 举报
回复
写个包装程序 把主程序跟dll包装到一起

运行时先解压 这样用户用着就方便了 跟没dll一样
欣客 2011-02-14
  • 打赏
  • 举报
回复
要提供dll的
http://www.neemou.cn/dll_0/xiazai_814.html

我没有下载,不知道是不是dll.
MildSong 2011-02-14
  • 打赏
  • 举报
回复
从楼主的描述中可以看出楼主是用的并不是静态库而是动态库,动态库的使用必须将相应的DLL引入
昵称很不好取 2011-02-14
  • 打赏
  • 举报
回复
此lib不是静态lib,这里面只是dll中的符号,如果要静态链接需要静态lib
mLee79 2011-02-14
  • 打赏
  • 举报
回复
你的lib只是dll的导入库, 编译个正宗的静态库出来...
qqqqqqpppp 2011-02-14
  • 打赏
  • 举报
回复
当初就是不想带一堆dll,才选择用7zip的LZMA库,在网上搜的LZMA库的用法,貌似没有提到需要dll。小弟太菜了,请问有啥解决办法 没?谢谢哈!
bdmh 2011-02-14
  • 打赏
  • 举报
回复
既然用到dll,为什么不带上呢,编译出lib也不一定等于dll都可以不带了

3,881

社区成员

发帖
与我相关
我的任务
社区描述
C/C++ 其它技术问题
社区管理员
  • 其它技术问题社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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