【问题标题】:Error related to libraries与库相关的错误
【发布时间】:2013-08-17 21:08:09
【问题描述】:

我只是用一个模糊逻辑库(eFLL 库)编写了一个模糊代码。我在linux环境中使用它并尝试用g ++编译它。我在 g++ 路径中解压缩了库。但是这些错误来找我,我不知道这些是为了什么。我制作了一个 Makefile 并尝试解决问题,但没有发生任何事情。有谁知道我该如何解决这个问题?

部分代码是这样的:

include <iostream.h>

#include "../FuzzyRule.h"

#include "../FuzzyComposition.h"

#include "../Fuzzy.h"


void setup(){

Fuzzy* fuzzy = new Fuzzy();

FuzzyInput* Threat = new FuzzyInput(1);


FuzzySet* lowThreat = new FuzzySet::FuzzySet(0, 1.875, 1.875, 3.75),

部分错误是这样的:

fuzzycode2.cpp:(.text+0x23): 未定义引用`Fuzzy::Fuzzy()'

fuzzycode2.cpp:(.text+0x61): 未定义的引用 `FuzzyInput::FuzzyInput(int)'

fuzzycode2.cpp:(.text+0xbb): 未定义的引用 `FuzzySet::FuzzySet(float, float, float, float)'

fuzzycode2.cpp:(.text+0xed): 未定义的引用 `FuzzyIO::addFuzzySet(FuzzySet*)'

fuzzycode2.cpp:(.text+0x129): 未定义的引用 `FuzzySet::FuzzySet(float, float, float, float)'

【问题讨论】:

  • 您是否告诉链接器实际链接到库?
  • 能发一下启动编译的shell命令吗?
  • &lt;iostream.h&gt;?你真的想丢掉上个千年的书!

标签: c++


【解决方案1】:

在 C++ 文件中包含标头是不够的。您还需要在链接时指定库文件及其位置,例如:

g++ your-files-go-here -o some-name -Llocation-of-the-library -llibrary-name

查看这个特定“库”的页面,它似乎只包含一堆目标文件,您需要将它们放在一个库中或在链接时明确包含。

【讨论】:

  • 这会尝试单独从mycode.cpp 链接一个可执行文件。只编译你需要使用的代码g++ -c mycode.cpp
  • 我通过创建 make 文件并使用“make”命令解决了我的问题。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2016-12-23
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2012-03-02
  • 2018-02-05
  • 2017-11-07
相关资源
最近更新 更多