提问人:Philemon 提问时间:6/6/2016 最后编辑:theBPhilemon 更新时间:10/30/2023 访问量:8189
未定义 使用 mingw 对 imp 的引用
Undefined Reference to imp using mingw
问:
我遇到的问题是“对'_imp__......'的未定义引用“错误,当我构建我的项目时出现。我正在使用Windows 7,MinGW,Eclipse以及我没有制作的.lib和.dll文件,但我直接从向我出售其产品的公司那里获取。
我用 -l 命令链接 HRDL.lib 文件,并且在同一目录中有 PicoHRDL.dll。找到了 lib 文件(我确定这一点),但出现了错误。我已将完整路径包含在 -L 命令中。我已经将头文件包含在函数的声明中,我得到了未定义的引用,但错误仍然存在。
我已经联系了 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:在函数“main”中:
C:\Users\Falamana\Desktop\Eclipse\ADC_project1\Debug/../ACD_SOURCE.c:70: 未定义对“_imp__HRDLGetUnitInfo@16”的引用
C:\Users\Falamana\Desktop\Eclipse\ADC_project1\Debug/../ACD_SOURCE.c:99: 未定义对“_imp__HRDLCloseUnit@4”的引用
ACD_SOURCE.o:在函数“SelectUnit”中:
C:\Users\Falamana\Desktop\Eclipse\ADC_project1\Debug/../ACD_SOURCE.c:115: 未定义对“_imp__HRDLGetUnitInfo@16”的引用
C:\Users\Falamana\Desktop\Eclipse\ADC_project1\Debug/../ACD_SOURCE.c:167: 未定义对“_imp__HRDLGetUnitInfo@16”的引用
答:
请注意,在您的编译信息中,期权符号应不在报价中。也就是说,-L
gcc "-LC:\Users\Falamana\Desktop\Eclipse\ADC_project1\Libraries" -shared -o libADC_24_DataLogger_App.exe ACD_SOURCE.o -lHRDL
应该是
gcc -L"C:\Users\Falamana\Desktop\Eclipse\ADC_project1\Libraries" -shared -o libADC_24_DataLogger_App.exe ACD_SOURCE.o -lHRDL
因此,请在您使用的任何 IDE 中检查您对 lib 目录的配置,util 编译信息的 gcc 行看起来很正常(util 位于引号字符的正前方)。-L
评论
就我而言,向链接器选项添加标志会有所帮助。-mwindows
评论
__stdcall