我遇到的问题是"未定义对' _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:\用户\ Falamana \桌面\的Eclipse \ ADC_project1 \调试/../ ACD_SOURCE.c:70: 未定义引用`_imp__HRDLGetUnitInfo @ 16'
C:\用户\ Falamana \桌面\的Eclipse \ ADC_project1 \调试/../ ACD_SOURCE.c:99: 未定义引用`_imp__HRDLCloseUnit @ 4'
ACD_SOURCE.o:在函数`SelectUnit':
C:\用户\ Falamana \桌面\的Eclipse \ ADC_project1 \调试/../ ACD_SOURCE.c:115: 未定义引用`_imp__HRDLGetUnitInfo @ 16'
C:\用户\ Falamana \桌面\的Eclipse \ ADC_project1 \调试/../ ACD_SOURCE.c:167: 未定义引用`_imp__HRDLGetUnitInfo @ 16'
答案 0 :(得分:0)
对于我来说,最好在链接器选项中添加-mwindows
标志。
答案 1 :(得分:-1)
请注意,在您的编译信息中,-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目录的配置,使用gcc编译信息行看起来正常(util -L
位于引号字符的正前方)。