未定义对使用CMake生成为lib .a的方法的引用

马修·H

您能否解释一下为什么AllToAll我的示例中的函数未定义?我使用CMake生成一个libNeuralNetwork.a,以示例为例。

LayerFactory.hpp

#pragma once
#include "LayerModel.hpp"
#include "Layer.hpp"

namespace nn
{
    extern internal::LayerModel AllToAll(int numberOfNeurons, activationFunction activation = sigmoid);
}

LayerFactory.cpp

#include "LayerFactory.hpp"
#include "AllToAll.hpp"

using namespace nn;
using namespace internal;

LayerModel AllToAll(int numberOfNeurons, activationFunction activation)
{
    LayerModel model
    {
        allToAll,
        activation,
        numberOfNeurons
    };
    return model;
}

神经网络

#pragma once
#include "layer/LayerModel.hpp"
#include "layer/LayerFactory.hpp"

namespace nn
{
    class NeuralNetwork
    {
    public:
        NeuralNetwork(int numberOfInputs, std::vector<internal::LayerModel> models);
        //...
    };
}

范例.cpp

#include "../src/neural_network/NeuralNetwork.hpp"

using namespace nn;

int example1()
{
    NeuralNetwork neuralNetwork(3, {AllToAll(5), AllToAll(2)});
}

错误信息:

CMakeFiles/UnitTests.out.dir/ExamplesTest.cpp.o: In function `example1()':
ExamplesTest.cpp:(.text+0x8b3): undefined reference to `nn::AllToAll(int, nn::activationFunction)'
Pesho_T

您已经AllToAll在顶级名称空间中声明并在名称空间中对其进行了定义nn

以下内容不会在名称空间中声明该函数:

using namespace foo;

extern void Bar();

你需要:

namespace foo {
  extern void Bar();
}

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

使用cmake对espeak的未定义引用

来自分类Dev

CMake:未定义的引用

来自分类Dev

使用自己的库使用cmake进行未定义的引用

来自分类Dev

使用cmake共享库的未定义引用

来自分类Dev

使用cmake共享库的未定义引用

来自分类Dev

OpenCV:使用cmake时对`cv :: imread的未定义引用

来自分类Dev

对已定义方法的未定义引用

来自分类Dev

未定义对功能CMake的引用

来自分类Dev

MinGW / CMake对ZLib的未定义引用

来自分类Dev

CMake 对类的未定义引用

来自分类Dev

C ++对模板方法的未定义引用

来自分类Dev

未定义对类方法的引用

来自分类Dev

C ++对模板方法的未定义引用

来自分类Dev

“未定义的引用” [OpenBSD 3.5系统定义的方法]

来自分类Dev

在Windows中使用CMake(mingw)在Qt5.14.0 static中未定义的引用

来自分类Dev

无法使用cmake编译项目-未定义对`ns_initparse'的引用

来自分类Dev

为什么cmake在Windows上使用cygwin给出netcdf的未定义引用?

来自分类Dev

未定义的引用

来自分类Dev

使用libav的未定义引用蚀

来自分类Dev

使用未定义的引用运行函数

来自分类Dev

CMake CUDA C ++链接错误-对`someFunction()`的未定义引用

来自分类Dev

CUDA catkin / cmake-对`curandCreateGenerator`的未定义引用

来自分类Dev

CMake链接问题:对QPushButton的未定义引用

来自分类Dev

CERN-ROOT 的 CMake“未定义引用”错误

来自分类Dev

未定义(无法引用未导出的字段或方法)

来自分类Dev

对纯抽象类中的方法的未定义引用

来自分类Dev

QString方法导致未定义的错误引用

来自分类Dev

由于未定义的QSerialPortInfo方法引用而无法编译

来自分类Dev

多个错误,未定义对方法的引用

Related 相关文章

热门标签

归档