未明确使用mingw

时间:2016-06-06 14:47:29

标签: c eclipse windows gcc undefined-reference

我遇到的问题是"未定义对' _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'

2 个答案:

答案 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位于引号字符的正前方)。