首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >从CLI C++项目引用非托管C++项目

从CLI C++项目引用非托管C++项目
EN

Stack Overflow用户
提问于 2012-09-19 07:39:49
回答 1查看 1K关注 0票数 2

我正在尝试创建一个CLI,以在我的非托管C++可执行项目和另一个托管项目之间架设桥梁,所有这些都位于一个Visual解决方案中。

不过,我遇到的问题更早了:我无法链接到新CLI项目中的非托管C++项目。我已经包含了所需的.h文件,并在CLI项目中添加了对非托管项目的引用。编译是成功的,但我得到了以前从未见过的链接错误:

误差2 错误LNK2028:未解决的令牌(0A 0088)“公共:__cdecl .

我在项目属性中添加了一个引用,并包含了.h文件。

谢谢

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2012-09-19 07:51:28

似乎链接器丢失了另一个项目的一些中间信息。我真的不记得“引用”本地项目是否会自动设置链接阶段。我觉得很奇怪你说“推荐信”..。对我来说,“引用”这个词有点局限于.Net程序集的世界,因为在VS中有“添加引用”,这使得没有人关心包含/库,而且由于明显的原因,IIRC对于本机dll是不可用的。如果您的意思是手动配置链接器选项,请原谅我:)

如果没有-请解释您如何引用本机模块。

无论哪种方式,如果“引用”更早地起作用,如果您重命名项目,那么文件名可能会不同步,也许文件时间戳有点差,VS没有注意到新版本。简单的清除&重建有时神奇的帮助。如果没有,您可以尝试手动删除Debug/Release/Bin/Obj文件夹,然后再尝试重新构建。

要尝试诊断,第一步是查看链接器作为输入的内容:在C++/CLI项目的项目属性页中,检查Linker->CommandLine,看看是否有一个名称类似于"myOtherNativeCppProjectName.lib“的文件可见。如果没有--这是问题所在,只需将其添加到以前的链接器页面的链接器选项中,或者重新执行引用-添加,然后清理、重建和查看会发生什么。

要想说更多的话,您必须发布完整的错误消息--这个错误消息在函数名处被截断,所以很难判断它是您的函数,还是某个缺少的库模块。随着编译阶段的成功和问题在链接-你100%确定你已经实现了这个功能吗?我的意思是,正确的.h确实提供给了C++/CLI项目,但是正确的.cpp文件是否与本机包含的.h文件相匹配?这也很常见,不能忘记添加一个文件。或者忘记实例化一个模板。或者在.H和.CPP之间键入错误的类/函数名。

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/12490403

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档