gpt4 book ai didi

c++ - 链接器错误 - undefined reference

转载 作者:太空狗 更新时间:2023-10-29 23:46:20 24 4
gpt4 key购买 nike

我有一个项目依赖于一个日志项目,当我构建这个其他项目时,我得到以下链接器错误:

日志项目构建良好,但是当我将此项目中的日志项目用作链接器选项中的库时,它会生成以下错误,在我的日志项目中,我确实有一个 logger.cpp,其中定义了 wxRegKey。

../logging/dist/Debug/MinGW_1-Windows/liblogging.a(Logger.o): In function `ZN7Logging6Logger17CreateRegistryKeyEv':
c:\logging/impl/Logger.cpp:125: undefined reference to `_imp___ZN8wxRegKeyC1ENS_6StdKeyERK8wxString'
c:\logging/impl/Logger.cpp:127: undefined reference to `_imp___ZN8wxRegKeyC1ENS_6StdKeyERK8wxString'
c:\logging/impl/Logger.cpp:129: undefined reference to `_imp___ZNK8wxRegKey6ExistsEv'
c:\logging/impl/Logger.cpp:135: undefined reference to `_imp___ZN8wxRegKeyD1Ev'
c:\logging/impl/Logger.cpp:140: undefined reference to `_imp___ZN8wxRegKeyC1ENS_6StdKeyERK8wxString'
c:\logging/impl/Logger.cpp:142: undefined reference to `_imp___ZNK8wxRegKey6ExistsEv'
c:\logging/impl/Logger.cpp:143: undefined reference to `_imp___ZN8wxRegKey6CreateEb'
c:\logging/impl/Logger.cpp:149: undefined reference to `_imp___ZNK8wxRegKey6ExistsEv'
c:\logging/impl/Logger.cpp:152: undefined reference to `_imp___ZN8wxRegKeyD1Ev'
c:\logging/impl/Logger.cpp:155: undefined reference to `_imp___ZN8wxRegKeyC1ENS_6StdKeyERK8wxString'
c:\logging/impl/Logger.cpp:156: undefined reference to `_imp___ZNK8wxRegKey6ExistsEv'
c:\logging/impl/Logger.cpp:157: undefined reference to `_imp___ZN8wxRegKey6CreateEb'
../logging/dist/Debug/MinGW_1-Windows/liblogging.a(Logger.o): In function
`ZN7Logging6Logger13GetLoggStatusEv':
c:\logging/impl/Logger.cpp:169: undefined reference to
`_imp___ZNK8wxRegKey8HasValueEPKc'
c:\logging/impl/Logger.cpp:170: undefined reference to
`_imp___ZNK8wxRegKey10QueryValueEPKcPl'
c:\logging/impl/Logger.cpp:176: undefined reference to
`_imp___ZN8wxRegKey8SetValueEPKcl'


../logging/dist/Debug/MinGW_1-Windows/liblogging.a(Logger.o): In function
`ZN7Logging6Logger12SetLoggLevelEv':
c:\logging/impl/Logger.cpp:186: undefined reference to
`_imp___ZNK8wxRegKey8HasValueEPKc'
c:\logging/impl/Logger.cpp:193: undefined reference to
`_imp___ZN8wxRegKey8SetValueEPKcRK8wxString'
c:\logging/impl/Logger.cpp:200: undefined reference to `_imp__wxConvUTF8'
../logging/dist/Debug/MinGW_1-Windows/liblogging.a(Logger.o): In function
`ZN12wxStringBase4InitEv':
C:/wxWidgets-2.8.12/include/wx/string.h:270: undefined reference to
`_imp__wxEmptyString'
../logging/dist/Debug/MinGW_1-Windows/liblogging.a(Logger.o): In function `wxStringBase':
C:/wxWidgets-2.8.12/include/wx/string.h:368: undefined reference to
`_imp___ZN12wxStringBase4nposE'
C:/wxWidgets-2.8.12/include/wx/string.h:368: undefined reference to
`_imp___ZN12wxStringBase8InitWithEPKcjj'
../logging/dist/Debug/MinGW_1-Windows/liblogging.a(Logger.o): In function
`ZNK8wxRegKey10QueryValueEPKcR8wxString':
C:/wxWidgets-2.8.12/include/wx/msw/registry.h:167: undefined reference to
`_imp___ZNK8wxRegKey10QueryValueEPKcR8wxStringb'
collect2: ld returned 1 exit status
make[2]: *** [dist/Debug/MinGW_1-Windows/abcproject.dll] Error 1
make[1]: *** [.build-conf] Error 2
make: *** [.build-impl] Error 2
make[2]: Leaving directory `/c/abcproject'
make[1]: Leaving directory `/c/abcproject'


BUILD FAILED (exit value 2, total time: 34s)

logger.h中包含文件的顺序

 #include <vector>
#include <sstream>
#include <string>
#include <ctime>
#include <windows.h>
#include <winbase.h>
#include <wx/wx.h>
#include <wx/thread.h>
#include <wx/log.h>
#include <wx/app.h>
#include <wx/msw/registry.h>
#include <wx/utils.h>
#include <map>

请帮忙

最佳答案

您显然忽略了包含定义 wxRegKey 类的几个函数的库。那就是链接器说找不到的内容。您确定 logger.cpp 定义了 wxRegKey 它的所有方法吗?

我怀疑您的源代码实际上没有定义任何与wxRegKey 相关的内容,因为它实际上是来自外部库的类。您不是定义那个类,而是包含一个声明该类的头文件。 定义 位于外部文件中,您需要告诉构建系统这是哪个文件。

您有一个链接 错误,而不是编译 错误,因此#include 语句的顺序无关紧要。当您看到此处报告的错误时,编译器已经完成了所有内容的编译。编译器已将您的文本源代码转换为二进制目标代码,现在链接器正试图将所有二进制文件聚集在一起以形成最终的可执行程序。二进制文件引用编译器被告知将在其他地方定义的一些函数,现在链接器试图找到这些定义,但它找不到。

如果您不知道函数在哪里定义,或者不知道如何告诉您的构建系统在哪里可以找到它们,那么您可能不得不发布另一个问题:我需要链接什么才能使用 wxRegKey?如何在 NetBeans 项目中链接 wxWidgets?我不知道这些问题的答案,因为我从未使用过这些工具。

关于c++ - 链接器错误 - undefined reference ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12006291/

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