错误:尝试在全新系统安装中构建应用程序后未定义对'...'的引用

Error: undefined reference to '...' after trying to build app in fresh system installation

本文关键字:未定义 引用 应用程序 构建 系统安装 错误      更新时间:2023-10-16

我正在使用GCC编译器和Code::Blocks作为IDE在Win7 OS中开发C ++应用程序。我已经设置好了一切,一切正常。现在我需要将整个开发环境移动到虚拟机,所以我安装了系统,IDE编译器,复制了整个项目。我仔细检查了所有库和选项,它们是相同的。当我尝试构建应用程序时,我从构建日志(相关部分(中收到此错误 (50(:

-------------- Build: Debug in MagicReportsFull (compiler: GNU GCC Compiler)---------------
mingw32-g++.exe -Wall -std=c++11 -fexceptions -std=c++11 -g -IC:ProjectsMagicReportsFullinclude -IC:ProjectsMagicReportsFull -I"C:Program Files (x86)CodeBlocksMinGW" -IC:ProjectsMagicReportsFull -I"C:Program Files (x86)CodeBlocksMinGW" -IC:ProjectsMagicReportsFullinclude -c C:ProjectsMagicReportsFullmain.cpp -o objDebugmain.o
windres.exe   -J rc -O coff -i C:ProjectsMAGICR~1resource.rc -o objDebugresource.res
windres.exe   -J rc -O coff -i C:ProjectsMAGICR~1version.rc -o objDebugversion.res
mingw32-g++.exe -LC:ProjectsMagicReportsFull -o binDebugMagicReportsFull.exe objDebugmain.o  objDebugresource.res objDebugversion.res  -lcomdlg32 -lgdi32 -luser32 -lshlwapi ....CustomLibrarieslpng1636-buildlibpng16.a ....CustomLibrarieszlib-1.2.11-buildlibzlibstatic.a ....CustomLibrarieslibharu-RELEASE_2_3_0-buildsrclibhpdfs.a -lcomctl32 -mwindows
.
.
.
objDebugmain.o: In function `Z19CUSTOM_RegularTableP13_HPDF_Doc_RecP14_HPDF_Dict_RecffPfiS3_ic':
C:/Projects/MagicReportsFull/pdf.h:99: undefined reference to `HPDF_Page_Rectangle'
C:/Projects/MagicReportsFull/pdf.h:100: undefined reference to `HPDF_Page_Stroke'
C:/Projects/MagicReportsFull/pdf.h:102: undefined reference to `HPDF_Page_Rectangle'
C:/Projects/MagicReportsFull/pdf.h:103: undefined reference to `HPDF_Page_Stroke'
C:/Projects/MagicReportsFull/pdf.h:114: undefined reference to `HPDF_Page_MoveTo'
C:/Projects/MagicReportsFull/pdf.h:115: undefined reference to `HPDF_Page_LineTo'
C:/Projects/MagicReportsFull/pdf.h:116: undefined reference to `HPDF_Page_Stroke'
C:/Projects/MagicReportsFull/pdf.h:125: undefined reference to `HPDF_Page_MoveTo'
C:/Projects/MagicReportsFull/pdf.h:126: undefined reference to `HPDF_Page_LineTo'
C:/Projects/MagicReportsFull/pdf.h:127: undefined reference to `HPDF_Page_Stroke'
objDebugmain.o: In function `Z27CUSTOM_RegularTable_AddText20_CUSTOM_TableHandleriiPKhjccP14_HPDF_Dict_Recj':
C:/Projects/MagicReportsFull/pdf.h:198: undefined reference to `HPDF_Font_GetCapHeight'
C:/Projects/MagicReportsFull/pdf.h:232: undefined reference to `HPDF_Font_MeasureText'
C:/Projects/MagicReportsFull/pdf.h:294: undefined reference to `HPDF_Page_SetFontAndSize'
C:/Projects/MagicReportsFull/pdf.h:300: undefined reference to `HPDF_Font_MeasureText'
C:/Projects/MagicReportsFull/pdf.h:315: undefined reference to `HPDF_Page_BeginText'
C:/Projects/MagicReportsFull/pdf.h:316: undefined reference to `HPDF_Page_TextRect'
C:/Projects/MagicReportsFull/pdf.h:317: undefined reference to `HPDF_Page_EndText'
objDebugmain.o: In function `Z13pdf_generatorcPci':
C:/Projects/MagicReportsFull/pdf.h:347: undefined reference to `HPDF_New'
C:/Projects/MagicReportsFull/pdf.h:353: undefined reference to `HPDF_SetCompressionMode'
C:/Projects/MagicReportsFull/pdf.h:355: undefined reference to `HPDF_GetFont'
C:/Projects/MagicReportsFull/pdf.h:356: undefined reference to `HPDF_GetFont'
C:/Projects/MagicReportsFull/pdf.h:357: undefined reference to `HPDF_GetFont'
C:/Projects/MagicReportsFull/pdf.h:358: undefined reference to `HPDF_GetFont'
C:/Projects/MagicReportsFull/pdf.h:362: undefined reference to `HPDF_LoadPngImageFromFile'
C:/Projects/MagicReportsFull/pdf.h:442: undefined reference to `HPDF_AddPage'
C:/Projects/MagicReportsFull/pdf.h:444: undefined reference to `HPDF_Page_SetSize'
C:/Projects/MagicReportsFull/pdf.h:446: undefined reference to `HPDF_Page_SetLineWidth'
C:/Projects/MagicReportsFull/pdf.h:447: undefined reference to `HPDF_Page_SetLineWidth'
C:/Projects/MagicReportsFull/pdf.h:460: undefined reference to `HPDF_Page_DrawImage'
C:/Projects/MagicReportsFull/pdf.h:463: undefined reference to `HPDF_Page_BeginText'
C:/Projects/MagicReportsFull/pdf.h:464: undefined reference to `HPDF_Page_SetRGBFill'
C:/Projects/MagicReportsFull/pdf.h:465: undefined reference to `HPDF_Page_SetFontAndSize'
C:/Projects/MagicReportsFull/pdf.h:466: undefined reference to `HPDF_Page_TextRect'
C:/Projects/MagicReportsFull/pdf.h:467: undefined reference to `HPDF_Page_EndText'
C:/Projects/MagicReportsFull/pdf.h:685: undefined reference to `HPDF_AddPage'
C:/Projects/MagicReportsFull/pdf.h:687: undefined reference to `HPDF_Page_SetSize'
C:/Projects/MagicReportsFull/pdf.h:689: undefined reference to `HPDF_Page_SetLineWidth'
C:/Projects/MagicReportsFull/pdf.h:690: undefined reference to `HPDF_Page_SetLineWidth'
C:/Projects/MagicReportsFull/pdf.h:699: undefined reference to `HPDF_Page_DrawImage'
C:/Projects/MagicReportsFull/pdf.h:702: undefined reference to `HPDF_Page_BeginText'
C:/Projects/MagicReportsFull/pdf.h:703: undefined reference to `HPDF_Page_SetRGBFill'
C:/Projects/MagicReportsFull/pdf.h:704: undefined reference to `HPDF_Page_SetFontAndSize'
C:/Projects/MagicReportsFull/pdf.h:705: undefined reference to `HPDF_Page_TextRect'
C:/Projects/MagicReportsFull/pdf.h:706: undefined reference to `HPDF_Page_EndText'
C:/Projects/MagicReportsFull/pdf.h:829: undefined reference to `HPDF_AddPage'
C:/Projects/MagicReportsFull/pdf.h:831: undefined reference to `HPDF_Page_SetSize'
C:/Projects/MagicReportsFull/pdf.h:833: undefined reference to `HPDF_Page_SetLineWidth'
C:/Projects/MagicReportsFull/pdf.h:834: undefined reference to `HPDF_Page_SetLineWidth'
C:/Projects/MagicReportsFull/pdf.h:843: undefined reference to `HPDF_Page_DrawImage'
C:/Projects/MagicReportsFull/pdf.h:846: undefined reference to `HPDF_Page_BeginText'
Process terminated with status 1 (0 minute(s), 5 second(s))
50 error(s), 37 warning(s) (0 minute(s), 5 second(s))

如您所见,我正在使用 LibHaru 库,它在访客系统中运行良好。我也相信问题不在于库本身,而在于链接器。

项目生成选项 -> 链接器设置 -> 链接库:

libcomdlg32.a
libgdi32.a
libuser32.a
libshlwapi.a
....CustomLibrarieslpng1636-buildlibpng16.a
....CustomLibrarieszlib-1.2.11-buildlibzlibstatic.a
....CustomLibrarieslibharu-RELEASE_2_3_0-buildsrclibhpdfs.a
libcomctl32.a

我尝试在Win7虚拟机中做同样的事情,结果相同。我正在使用与访客系统中相同的文件。知道出了什么问题吗?

我发布了这个问题,因为我不确定链接器设置是否正常,但由于没有人说它是错误的,所以我搜索了其他问题。所以事实证明我一直在全局编译器设置中使用错误的程序文件 ->工具链可执行文件。此外,库顺序是错误的,LibHaru 需要首先是其他依赖库。卸载的GCC和IDE,然后安装了正确版本的GCC + IDE。现在它可以毫无问题地编译。

我怀疑重新安装编译器可能已经更改了 MinGW 的版本,并且这两个版本之间的库可能不兼容。 我以前对 MinGW 也有类似的奇怪行为,并且使用相同的编译器自己重新编译依赖项解决了这个问题(尽管这是一个乏味的解决方案(。

  • 编译器和系统完全一样吗?(相同的体系结构、版本等(
  • 检查您是否没有从以前的系统复制某些代码块环境特定的文件,也许代码块正在尝试使用不适用于新环境的选项进行编译。
  • libhpdfs 标头是否有系统依赖的定义?
  • 你自己编译了libhpdfs.a吗?
  • 您是否尝试过自己在虚拟机上重新编译它?