c - 链接器错误 (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 文件而导致的错误。请帮忙。
解决方案
-open62541.lib
指定应将编译结果写入文件pen62541.lib
。
并-o myServer.exe
说它应该被写入myServer.exe
。
然后 GCC 将忽略第一个输出文件名。
解决方法:-
从库名中去掉 。
推荐阅读
- javascript - 在 React Native Android 和 iOS 中使用 Set Interval
- r - R字符串,UTF-8编码瑞典字符处理
- dart - 使用键和值从地图创建小部件列表
- c - 检测到堆损坏 | C
- visual-studio - Visual Studio 2019 预览版和 Visual Studio 2019 RC 有什么区别?
- sql - 对 Oracle 12c 的 JSON 支持
- arrays - Jmeter - 使用数组中的一组值断言单个参数的响应
- ms-access - 仅新记录,当子表单有记录时
- selenium - Selenium geckodriver 打开 Firefox 开发者版而不是普通版
- apache-spark - 禁用 Apache Spark 指标收集器(用于 CI)