开发者社区> 问答> 正文

VC中生成Lib库时,是不是只是调用编译器,而没有调用链接器?? 400 报错

VC中生成Lib库时,是不是只是调用编译器,而没有调用链接器?? 400 报错

如题。

比如库A引用库B,然后在工程C使用库A(未带库B)时,编译出错。但是带B(即C工程链接加入A和B库),编译运行都没问题。

再则,使用dumpbin工具查看库A的符号表,可以清晰的看到库A中引用B中的函数符号前标明是未定义的。

只是想确认一下上面那个标题是不是正确的。

展开
收起
爱吃鱼的程序员 2020-06-05 13:18:06 564 0
1 条回答
写回答
取消 提交回答
  • https://developer.aliyun.com/profile/5yerqm5bn5yqg?spm=a2c6h.12873639.0.0.6eae304abcjaIB

    你的这种情况是没有进行链接的。######回复 @zjwzcnjsy : 说的是windows下的静态库,非dll######回复 @bygreencn : ???。 A库引用B库,生成lib库A时,A中调用B库的函数,该函数的代码未被拷贝到A库中,这样的说法对吗?######标题相当的有问题,你要表达的是VC生成lib时如果同时需调用其他lib时并未链接其他lib。######那就是说标题的说法是没有什么问题的?######lib要看是动态库还是静态库,动态库可以理解成一份函数声明表,静态库则会包含函数实现######说的是windows下的静态库,非dll######说的是静态库######没用过vs编译器?######只有在A工程的属性->Librarian->Additional Dependencies中加入B.lib,生成的A.lib中才会包含B的内容。如果只是project dependencies中设置了依赖关系,A中不会包含B的内容,生成exe或dll的时候才会去真正做链接。

    2020-06-05 13:18:17
    赞同 展开评论 打赏
问答分类:
问答地址:
问答排行榜
最热
最新

相关电子书

更多
低代码开发师(初级)实战教程 立即下载
冬季实战营第三期:MySQL数据库进阶实战 立即下载
阿里巴巴DevOps 最佳实践手册 立即下载