gpt4 book ai didi

.net - 奇怪的 C++/CLI 链接问题 - 无法解析的外部符号,但头文件已链接

转载 作者:行者123 更新时间:2023-12-01 19:37:51 25 4
gpt4 key购买 nike

我试图在 C++/CLI 中做一些非常简单的事情,但是我在使用 Visual Studio 时遇到了问题,而且我不明白为什么。

我有两个项目,其中一个包含一个名为 JNIUtils.h 的头文件。它的内容非常简单 -

#pragma once

class JNIUtils
{
public:
JNIUtils( void );
~JNIUtils( void );
};

它的实现也非常简单 -

#include "stdafx.h"

#include "JNIUtils.h"

JNIUtils::JNIUtils( void )
{

}

JNIUtils::~JNIUtils( void )
{

}

我想做的就是在另一个项目中创建这个新定义类型的对象。在包含此头文件的项目中,我转到了

项目属性 > 配置属性 > VC++ 目录 > 包含目录

我添加了一个条目,其中包含我要包含的头文件所在位置的路径 (JNIUtils.h)

我尝试在其中创建此对象的实例的 CPP 文件如下所示:

#include "stdafx.h"
#include "JNIUtils.h"

using namespace System;

int main(array<System::String ^> ^args)
{
JNIUtils *util = new JNIUtils();
Console::WriteLine(L"Hello World");
return 0;
}

当我尝试编译时,出现以下错误:

Error   3   error LNK1120: 2 unresolved externals   C:\zcarter\UDK\WebSvcClients\Debug\JNITester.exe    JNITester
Error 2 error LNK2019: unresolved external symbol "public: __thiscall JNIUtils::JNIUtils(void)" (??0JNIUtils@@$$FQAE@XZ) referenced in function "int __clrcall main(cli::array<class System::String ^ >^)" (?main@@$$HYMHP$01AP$AAVString@System@@@Z) C:\zcarter\UDK\WebSvcClients\JNITester\JNITester.obj JNITester
Error 1 error LNK2028: unresolved token (0A000009) "public: __thiscall JNIUtils::JNIUtils(void)" (??0JNIUtils@@$$FQAE@XZ) referenced in function "int __clrcall main(cli::array<class System::String ^ >^)" (?main@@$$HYMHP$01AP$AAVString@System@@@Z) C:\zcarter\UDK\WebSvcClients\JNITester\JNITester.obj JNITester

谁能告诉我我在这里做错了什么?

最佳答案

当您想将一个项目中的类使用到另一个项目中时,您需要做两件事:

1) 将库编译代码 (.lib) 链接到您的主应用程序代码。如果您有 vs2010,只需在 Project->Properties->Common->References 部分添加项目,所有艰苦的工作都会为您完成。

如果您使用的是 vs2008 或更低版本,则必须将项目添加到 Project->Dependencies... 中的依赖项中。然后,进入Project->Properties->Linker->Input并将.lib文件添加到现有的.dll列表中。使用相对路径,以便这可以在其他计算机上运行。请注意,vs2008 中还有一个 Reference 部分,但我相信它仅适用于 CLR 程序集。

2) 将 header 添加到包含目录

您已经了解了该部分,但我建议您将它们添加到Project->Properties->C++->Additional Include Directory中,因为您使用的方法在另一台计算机上不起作用除非他们的配置与您相同。

关于.net - 奇怪的 C++/CLI 链接问题 - 无法解析的外部符号,但头文件已链接,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8829773/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com