zoukankan      html  css  js  c++  java
  • warning LNK4070的解决办法

    作者:朱金灿
    来源:http://blog.csdn.net/clever101


           重命名了一个MFC常规DLL的工程文件(VS C++ 2005编译环境),结果在编译时出现这样的警告:1>B.exp : warning LNK4070: .EXP 中的 /OUT:A.dll 指令与输出文件名"../outdir/Debug/B.dll"不同;忽略指令(这里假设原来的工程文件名叫A.vcproj,改名后叫B.vcproj)。后来我发现虽然输出为B.dll,但是对应的静态库B.lib被其它工程以隐式链接的方式调用时,使用的还是A.dll(这个可以使用Dependcies工具来查看),这样导致往往其它动态库不能加载成功(因为)。这下我不能把它仅仅当做warning而弃之不管了,于是上网查资料解决这个warning。查完资料,再结合自己的思考,大致明白了造成warning的原因。原来是虽然我修改了工程名,但是没有修改这个工程的def文件中LIBRARY字段的值,造成工程的输出文件和def文件的LIBRARY字段的值不一样。比如我把A.vcproj修改为B.vcproj,但在def文件还是LIBRARY "A"。这时只需将def文件中的LIBRARY字段修改为:LIBRARY "B"。这样就能完全消除这个警告。而被别的库以隐式链接调用也是以B.dll面目出现的。


  • 相关阅读:
    ios中地图
    ios中地图定位
    ios中文件下载(带缓存)
    ios中tableview网封装(viewcontroller封装)常用的
    ipad开发小结
    ios tableview分组
    los中预览文件
    ios中一级导航
    ios中封装九宫格的使用(二级导航)
    ios中自定义button
  • 原文地址:https://www.cnblogs.com/lanzhi/p/6471002.html
Copyright © 2011-2022 走看看