VS2008 工程同时生成dll和lib文件

csztan 2008-12-16 10:20:09
工程以前是vc2003的。编译后生成一个dll文件和一个lib文件。

现在升级为2008的,不知道为什么只生成dll,不生成lib文件了。

import library:设置正确。

不知道有没有人知道可能原因?
...全文
11901 22 打赏 收藏 转发到动态 举报
写回复
用AI写文章
22 条回复
切换为时间正序
请发表友善的回复…
发表回复
Jack_NaVi 2012-07-11
  • 打赏
  • 举报
回复
此 DLL 在创建时不导出任何符号。 因此,在生成此 DLL 时
生成时不会产生 .lib 文件。 如果希望此项目
成为其他某个项目的项目依赖项,则需要
添加代码以从 DLL 导出某些符号,
以便产生一个导出库,或者,也可以在项目“属性页”对话框中的
“链接器”文件夹中,将“常规”属性页上的
“忽略输入库”属性设置为“是”。
小菜_默 2010-07-23
  • 打赏
  • 举报
回复
添加导出符号~~
fairuyy 2010-04-09
  • 打赏
  • 举报
回复
[Quote=引用 15 楼 keagan 的回复:]
刚好也碰到这个问题,找到个方法可解决:

在工程上右键 -> 添加 -> 新建项 -> 选"模块定义文件(.def)" -> 随便输入个名字 -> 添加

现在编译就可生成.lib 文件了,然后把添加的文件删除,以后都没问题了.
如果上边的操作是添加现有项,不能产生(.lib)的问题依旧存在.
[/Quote]

我刚试了。。。还真可以。。。谢谢了...
sfzhaolv 2010-03-30
  • 打赏
  • 举报
回复
呵呵,明白了
ksniffer 2010-01-05
  • 打赏
  • 举报
回复
确实需要def文件,我的工程原来是在vc6下编译的,不加def就是不出lib,加了就出
carma2002 2009-12-21
  • 打赏
  • 举报
回复
确实如keagan所说可解决问题

项目属性->链接器->输入->模块定义文件->在里面添上*.def
keagan 2009-03-29
  • 打赏
  • 举报
回复
上面的回答有误,现更正:
不生成.lib问题主要原因是缺少 模块定义文件 ,上面的添加操作主要是添加了一个内容为 "LIBRARY "***"" 的模块文件,就可生成.lib文件.

主要的设置是:
项目属性->链接器->输入->模块定义文件->在里面添上*.def即可解决问题
keagan 2009-03-29
  • 打赏
  • 举报
回复
刚好也碰到这个问题,找到个方法可解决:

在工程上右键 -> 添加 -> 新建项 -> 选"模块定义文件(.def)" -> 随便输入个名字 -> 添加

现在编译就可生成.lib 文件了,然后把添加的文件删除,以后都没问题了.
如果上边的操作是添加现有项,不能产生(.lib)的问题依旧存在.
csztan 2008-12-17
  • 打赏
  • 举报
回复
我就是这么设置的

[Quote=引用 6 楼 wutaihua 的回复:]
在工程上点击右键,然后选择properties,进入后在左侧的树形目录中选择Linker->General
然后要保证Enable Incremental Linking (从上往下数是第四项)选项选择(Yes (/INCREMENTAL));
Ignore Import Library(第六项)选择No;
Link Library Dependencies (倒数第二项)选择YES; // ///////// 这个是倒数第三项

自己调整下,应该就可以了
[/Quote]
csztan 2008-12-17
  • 打赏
  • 举报
回复
那种生成。

不过生成的就不能更改吗?
wutaihua 2008-12-17
  • 打赏
  • 举报
回复
在工程上点击右键,然后选择properties,进入后在左侧的树形目录中选择Linker->General
然后要保证Enable Incremental Linking (从上往下数是第四项)选项选择(Yes (/INCREMENTAL));
Ignore Import Library(第六项)选择No;
Link Library Dependencies (倒数第二项)选择YES;

自己调整下,应该就可以了
csztan 2008-12-17
  • 打赏
  • 举报
回复
比较不出什么差异
ilovedrv 2008-12-17
  • 打赏
  • 举报
回复
如果你有时间的话,就对照来两个工程配置,看看有什么不同

没时间的话,直接新建一个可以导出lib的,把实现文件拷贝过去不就行了
csztan 2008-12-17
  • 打赏
  • 举报
回复
up
sys0007 2008-12-17
  • 打赏
  • 举报
回复
[Quote=引用楼主 csztan 的帖子:]
工程以前是vc2003的。编译后生成一个dll文件和一个lib文件。

现在升级为2008的,不知道为什么只生成dll,不生成lib文件了。

import library:设置正确。

不知道有没有人知道可能原因?
[/Quote]

import library:设置正确。
咋设置的?
csztan 2008-12-17
  • 打赏
  • 举报
回复
我再输出里面 查找lib字符串,只查到这个:
Severe: The Pug XML library API variant does not match your implementation!
Severe: Your implementation may not run correctly with this variant.


另外如果是路径错误的话,我在资源管理器里搜索应该生成的lib文件也查不到。
wutaihua 2008-12-17
  • 打赏
  • 举报
回复
还没有解决吗?如果还有问题的话,或者是怀疑路径有错。那么你可以看编译的信息啊,把那些output中打印出来的信息,搞到记事本或者UltraEdit上,就可以看到了关于lib生成的信息。实在没有,就没辙了,毕竟没亲自去搞这个。我没遇到过类似的
wutaihua 2008-12-17
  • 打赏
  • 举报
回复
[Quote=引用 8 楼 csztan 的回复:]
是不是必须要def文件?
[/Quote]
不是,如果编译过了,就不需要,如果编译都没有通过的话,就需要,会有提示的。我看了一下我的那些库,有的有,有的就没有,照样可以编译通过。而且不影响使用
linglongyouzhi 2008-12-17
  • 打赏
  • 举报
回复
是不是lib的目录变了啊
vs2005和2003的输出目录就不一样
csztan 2008-12-17
  • 打赏
  • 举报
回复
Linker-〉General

Output File: ../../Bin/***.dll
Show Progress: Not Set
Version:
Enable Incremental Linking: Yes(/INCREMENTAL)
Suppress Startup Banner: Yes(/NOLOG0)
Ignore Import Library: No
Register Output: No
Pre-user Redirection: No
Additional Library Directories:
Link Library Dependency Inputs: No
Use UNICODE Response Files: Yes
加载更多回复(2)

16,472

社区成员

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

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

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