我遇到的问题是在构建项目时出现的“对'_imp__...' 的 undefined reference ”错误。我使用的是 Windows 7、MinGW、Eclipse 以及 .lib 和 .dll 文件,这些文件不是我制作的,而是我直接从向我出售其产品的公司那里获取的。
我用 -l 命令链接 HRDL.lib 文件,我在同一目录中有 PicoHRDL.dll。找到了 lib 文件(我确定这一点),但出现错误。我已将完整路径包含在 -L 命令中。我已经包含了函数声明的头文件,我得到了 undefined reference ,但错误仍然存在。
我已经联系了 Eclipse 支持和 Picotech 支持(上述公司),但他们直到现在都无法定位问题。
这些是命令:
gcc -O0 -g -Wall -c -fmessage-length=0 -o ACD_SOURCE.o "..\\ACD_SOURCE.c"
gcc "-LC:\\Users\\Falamana\\Desktop\\Eclipse\\ADC_project1\\Libraries" -shared -o libADC_24_DataLogger_App.exe ACD_SOURCE.o -lHRDL
这些是错误:
ACD_SOURCE.o: In function `main':
C:\Users\Falamana\Desktop\Eclipse\ADC_project1\Debug/../ACD_SOURCE.c:70: undefined reference to `_imp__HRDLGetUnitInfo@16'
C:\Users\Falamana\Desktop\Eclipse\ADC_project1\Debug/../ACD_SOURCE.c:99: undefined reference to `_imp__HRDLCloseUnit@4'
ACD_SOURCE.o: In function `SelectUnit':
C:\Users\Falamana\Desktop\Eclipse\ADC_project1\Debug/../ACD_SOURCE.c:115: undefined reference to `_imp__HRDLGetUnitInfo@16'
C:\Users\Falamana\Desktop\Eclipse\ADC_project1\Debug/../ACD_SOURCE.c:167: undefined reference to `_imp__HRDLGetUnitInfo@16'
最佳答案
在我的例子中,它有助于将 -mwindows
标志添加到链接器选项。
关于c - 使用 mingw 对 imp 的 undefined reference ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37660415/