首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >在visual studio中使用openNN (未解析的外部符号)

在visual studio中使用openNN (未解析的外部符号)
EN

Stack Overflow用户
提问于 2016-09-05 01:45:20
回答 1查看 719关注 0票数 0

我希望使用C++神经网络库"OpenNN“。http://www.opennn.net/

我是C++项目管理的新手,我相信我的问题就是由这个引起的。

我已经克隆了openNN存储库。

我将存储库中的相关文件夹复制到我创建的文件夹中,该文件夹包含我计划创建的所有OpenNN项目。

然后,我在visual studio中创建了一个c++控制台应用程序,该应用程序位于我要用于测试的这个文件夹中。

所以dir结构是:

OpenNN (我计划在这里保存所有openNN项目)

-eigen

-opennn

-tinyxml2

-OpenNNTest(我的测试项目文件夹)

我用矢量和矩阵类做了一些测试,它们都是OpenNN的一部分,都运行得很好。

但是,下面的代码返回以下两个外部符号错误:

代码语言:javascript
复制
Error   LNK2019 unresolved external symbol "public: __thiscall OpenNN::NeuralNetwork::NeuralNetwork(class OpenNN::Vector<unsigned int> const &)" (??0NeuralNetwork@OpenNN@@QAE@ABV?$Vector@I@1@@Z) referenced in function "void __cdecl NNTest(void)" (?NNTest@@YAXXZ)  OpenNNTest  D:\Projects\OpenNN\OpenNNTest\OpenNNTest\OpenNNTest.obj 1   

Error   LNK2019 unresolved external symbol "public: virtual __thiscall
OpenNN::NeuralNetwork::~NeuralNetwork(void)" (??1NeuralNetwork@OpenNN@@UAE@XZ) referenced in function "void __cdecl NNTest(void)" (?NNTest@@YAXXZ)  OpenNNTest  D:\Projects\OpenNN\OpenNNTest\OpenNNTest\OpenNNTest.obj 1   

有趣的是,如果我改变了:

代码语言:javascript
复制
OpenNN::NeuralNetwork nn(architecture);

代码语言:javascript
复制
OpenNN::NeuralNetwork nn();

没有问题,就好像它找到了默认的构造函数而不是重载的构造函数?

我使用的代码如下:

代码语言:javascript
复制
#include "stdafx.h"

#include "../../opennn/opennn.h"
using namespace OpenNN;

using std::cout;
using std::endl;

void NNTest()
{
    OpenNN::Vector<unsigned> architecture(5);
    architecture[0] = 2;
    architecture[1] = 2;
    architecture[2] = 4;
    architecture[3] = 3;
    architecture[4] = 1;

    OpenNN::NeuralNetwork nn(architecture);

    //Vector<double> inputs(2);
    //inputs[0] = 0.5;
    //inputs[1] = 0.1;

    //Vector<double> outputs = nn.calculate_outputs(inputs);

    //cout << outputs << endl;

    //nn.save("neural_network.xml");


}

int main()
{
    NNTest();

    getchar();

    return 0;
}
EN

回答 1

Stack Overflow用户

发布于 2016-11-04 02:33:47

您需要将类型unsigned更改为size_t:

代码语言:javascript
复制
OpenNN::Vector<size_t> architecture(5);
architecture[0] = 2;
architecture[1] = 2;
architecture[2] = 4;
architecture[3] = 3;
architecture[4] = 1;

OpenNN::NeuralNetwork nn(architecture);

我希望这能有所帮助。

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

https://stackoverflow.com/questions/39319775

复制
相关文章

相似问题

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