2011-03-23 66 views
0

我有几个项目的解决方案。说ProjectA是会生成exe文件的,而Project B只是生成一个.lib文件。我已经检查过ProjectA依赖于ProjectB,因此ProjectB将始终在ProjectA之前编译。同一解决方案中的项目之间的链接问题

当我编译ProjectB时一切顺利。但是,如果我编译ProjectA,我会得到链接错误,说B的某些方法不存在。我查过了,它确实存在。

¿发生了什么事?

感谢您的帮助!

+1

这种方法很可能实际上不存在。也许你错过了一个'const'或什么的?请发布导致错误的代码(函数和引用代码)以及确切的链接器错误消息。 – 2011-03-23 12:04:01

+0

这还不够(再次阅读我的评论)。另外,请不要将代码发布为评论,而是编辑您自己的问题以添加新信息。 – 2011-03-23 12:09:19

+0

这两个项目是用C++编码的吗?如果你在一个项目中使用C,在另一个项目中使用C++,你必须用'extern“C”'声明函数。 [更多信息](http://www.parashift.com/c++-faq-lite/mixing-c-and-cpp.html) – 2011-03-23 12:14:47

回答

4

项目属性,链接器,常规:将“链接库依赖项”设置为是。

+0

好的,这工作,但我不得不添加/ FORCE:MULTIPLE其他选项在链接器命令行中,因为它给了我其他链接错误LIBCMTD.lib – Sara 2011-03-23 12:13:34

+0

@Sara:您应该使两个项目使用相同的运行时,否则您可能会出现有趣的错误。 “属性,C/C++,代码生成,运行时库” – Erik 2011-03-23 12:15:14

+0

但现在它给出了一个运行时错误R6030 - CRT未初始化... – Sara 2011-03-23 12:16:20

相关问题