我已经包含了链接到它们库的头文件,但是我仍然收到链接器错误。除了显而易见的情况之外,是否还有一些可能的问题。
Eclipse说:
构建目标:LinkProblem
调用:GCC C ++链接器
g ++ -L / home / notroot / workspace / somelib-3 / somelib / target / bin -o“LinkProblem”./src/LinkProblem.o -lsomelib1 -lpthread -lsomelib2 -lsomelib3
./src/LinkProblem.o:在函数`main'中:
/home/notroot/workspace/LinkProblem/Debug/../src/LinkProblem.cpp:17:对SomeClass :: close()'的未定义引用
./src/LinkProblem.o:在函数`SomeOtherClass'中:
/home/notroot/workspace/somelib-3/somelib/include/sql/somefile.h:148:对SomeClass :: SomeClass()'的未定义引用
/home/notroot/workspace/somelib-3/somelib/include/sql/somefile.h:148:未定义对“SomeOtherClass的vtable”的引用
/home/notroot/workspace/somelib-3/somelib/include/sql/somefile.h:151:对SomeClass ::〜SomeClass()'的未定义引用
./src/LinkProblem.o:在函数`〜SomeOtherClass'中:
/home/notroot/workspace/somelib-3/somelib/include/sql/somefile.h:140:未定义对“SomeOtherClass的vtable”的引用
/home/notroot/workspace/somelib-3/somelib/include/sql/somefile.h:140:对SomeClass ::〜SomeClass()'的未定义引用
/home/notroot/workspace/somelib-3/somelib/include/sql/somefile.h:140:对SomeClass ::〜SomeClass()'的未定义引用
collect2:ld返回1退出状态
make:*** [LinkProblem]错误1
发布于 2018-04-19 09:00:05
假设这些方法在其中一个库中,它看起来像一个排序问题。
将库链接到可执行文件时,它们按照它们声明的顺序完成。 此外,链接器只会采用解决当前未完成依赖关系所需的方法/函数。如果后续库使用原来不需要的方法/函数,则将缺少依赖关系。
怎么运行的:
例:
对象需要:
Lib 1提供:
Lib 2提供
如果像这样链接:
gcc -o plop plop.o -l1 -l2
但是,如果我像这样链接应用程序:
gcc -o plop plop.o -l2 -l1
发布于 2018-04-19 10:34:19
你已经用一个声明覆盖了一个子类中的虚函数,但是没有给出该方法的定义。例如:
class Base
{
virtual void f() = 0;
}
class Derived : public Base
{
void f();
}
https://stackoverflow.com/questions/-100008182
复制相似问题