首页 > 解决方案 > 链接器错误 (LNK2019) 未定义对 __imp_ 的引用

问题描述

我正在开发 open62541 开源项目。我已经使用 Cmake 构建了该项目,如以下网页open62541.org中所述,并在项目的构建文件夹中生成了 open62541.c、open62541.h 文件。然后我创建了一个名为的新文件夹构建文件夹中的C_project并将生成的文件复制到此文件夹中。

现在我正在尝试按照以下页面open62541/sever中给出的步骤构建一个最小服务器(C_Project/myServer.c) 。我收到以下链接错误。

C:\SPB_Data\open62541\build\C_Projects\OPC_UA>cmd /c gcc -std=c99 open62541.c myServer.c -lws2_32 -o myServer.exe > output.txt
C:\Users\PAVAN-~1\AppData\Local\Temp\cc1s9pOw.o:myServer.c:(.text+0x98): undefined reference to `__imp_UA_ServerConfig_setMinimalCustomBuffer'
C:\Users\PAVAN-~1\AppData\Local\Temp\cc1s9pOw.o:myServer.c:(.text+0xd8): undefined reference to `__imp_UA_Log_Stdout'
C:\Users\PAVAN-~1\AppData\Local\Temp\cc1s9pOw.o:myServer.c:(.text+0x132): undefined reference to `__imp_UA_Server_new'
C:\Users\PAVAN-~1\AppData\Local\Temp\cc1s9pOw.o:myServer.c:(.text+0x146): undefined reference to `__imp_UA_Server_getConfig'
C:\Users\PAVAN-~1\AppData\Local\Temp\cc1s9pOw.o:myServer.c:(.text+0x165): undefined reference to `__imp_UA_Server_run'
C:\Users\PAVAN-~1\AppData\Local\Temp\cc1s9pOw.o:myServer.c:(.text+0x178): undefined reference to `__imp_UA_Server_delete'
collect2.exe: error: ld returned 1 exit status

链接器错误

我使用以下命令来构建项目:

$ gcc -std=c99 open62541.c myServer.c -o myServer

我试图通过在网络上搜索来找到解决方案。我唯一能摆脱的就是它可能是由于 dll 文件而导致的错误。请帮忙。

标签: cdllcmakelinkeropc-ua

解决方案


-open62541.lib指定应将编译结果写入文件pen62541.lib

-o myServer.exe说它应该被写入myServer.exe

然后 GCC 将忽略第一个输出文件名。

解决方法:-从库名中去掉 。


推荐阅读