VS编译设置正确,但无法生成xxx.lib解决办法

windows生成动态库问题

  • 对于大多数生成动态库dll的工程项目而言。要想生成xxx.lib 文件,可以通过将头文件添加__dllexport完成;如下
#define _WIN_EXPORT

#ifdef _WIN32
#ifdef _WIN_EXPORT
#define DLL_EXPORT __declspec(dllexport)
#else  
#define DLL_EXPORT __declspec(dllimport)  
#endif  
#endif  

DLL_EXPORT int yourfunctionAPi1();
DLL_EXPORT int yourfunctionAPi2();

  • 但我将对应的头文件添加上述的宏定义之后,依然不能生成lib文件,只能生成dll,尝试多次无果;最终只能走第二条路线,通过定义模块定义文件xxx.def来生成lib
  • 具体步骤:
    • 点击工程源文件》右击添加》新建项》VC++》代码》模块定义文件,并完成命名,默认保存在源文件同级目录
    • 编辑模块定义文件xxx.def
    LIBRARY  dllName //your dll name
    EXPORTS
    yourfuncName1   @1
    yourfuncName2   @2
    
    
    • dllName:通常就是项目名,默认为动态库的命名
      • yourfuncName1: 函数接口1
      • yourfuncName1: 函数接口2
    • 修改:属性》链接器》模块定义文件,添加上述改写的xxx.def即可!
  • 重新编译生成,lib文件生成成功!至于第一种方式无法生成的原因,尚不知道,望各位大佬指教!

VS修改代码,运行失效,未更新

  • VS修改代码后,运行依然是修改之前的代码解决办法
  • 菜单栏点击:工具=》选项=》项目和解决方案=》生成并运行=》运行期间,当项目过期时=》下拉菜单,选择始终生成,第2个下拉菜单选择提示启动。

VS Release模式下生成pdb文件

  • step1: 项目->属性->C/C+±>General->Debug Information Format->Program Database for Edit & Continue (/ZI)
  • step2: 项目->属性->C/C+±>Optimization->Optimization->Disabled(/Od)
  • step3: 项目->属性->Linker->Debugging->Generate Debug Info->Yes(/DEBUG)
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值