gpt4 book ai didi

c++ - g++ 对构造函数的 undefined reference

转载 作者:行者123 更新时间:2023-11-30 01:32:59 25 4
gpt4 key购买 nike

我正在针对预编译库编译和链接一个 cpp 文件,我收到“ undefined reference ”错误。

首先,这是命令(有问题的库是 quicknet3,我正在编译的程序是 trapper):

g++ -w -g -I. -g -O3 -pipe -Wall -I/home/install/x86_64/include/quicknet3 -L/home/install/x86_64/lib -lquicknet3 -lintvec -lfltvec -o trapper trapper.cpp CMyException.cpp

这是 undefined reference 错误:

/tmp/ccFuVczF.o: In function 'main':
trapper.cpp:1731: undefined reference to 'QN_InFtrLabStream_PFile::QN_InFtrLabStream_PFile(int, char const*, _IO_FILE*, int)'

trapper.cpp(第 1731 行)中的调用是:

IN_PFILE = new QN_InFtrLabStream_PFile(0, "", fp, 1);

哪里fpFILE * , 作为 fopen 的结果分配提前打电话。

被调用的构造函数定义在相关的头文件(QN_Pfile.h)中,如下:

class QN_InFtrLabStream_PFile : public
QN_InFtrLabStream<br/>
{<br/>
public:<br/>
QN_InFtrLabStream_PFile(int a_debug, const char* a_dbgname, FILE* a_file, int a_indexed);<br/>
(... other declarations ...)
}

QN_Pfile.cc中确实给出了构造函数的定义:

QN_InFtrLabStream_PFile::QN_InFtrLabStream_PFile(int a_debug,const char* a_dbgname, FILE* a_file, int a_indexed) : log(a_debug, "QN_InFtrLabStream_PFile", a_dbgname),file(a_file),indexed(a_indexed),buffer(NULL),sentind(NULL)
{<br/>
(... the usual constructor stuff :P ...)
}

我自己编译了quicknet3库,没有报错,安装到/home/install/x86_64/lib/libquicknet3.a

所以,我无法理解为什么来自 trapper.cpp 的调用无法找到对此构造函数定义的引用。 -L/home/install/x86_64/lib -lquicknet3 的 g++ 参数应该做的伎俩,对不对?

有什么想法吗?

谢谢,罗伊

最佳答案

我注意到您正在混合使用 FILE*_IO_FILE*。我对后者不熟悉,你确定它们是一回事吗?

关于c++ - g++ 对构造函数的 undefined reference ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/642066/

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