CAMKE 的 net-SNMP 链接器错误(未定义引用)

net-snmp linker error with camke (undefined reference to)

提问人:Ali Assar 提问时间:12/3/2022 最后编辑:Ali Assar 更新时间:12/3/2022 访问量:208

问:

我在将net-snmp库与CMake链接时遇到问题。我根据 readme.win32 文件中的说明使用 MinGW 成功构建了库,现在我想运行 snmpdemoapp(示例演示代码)。但是,我无法正确链接库。

我在下面编写了 CMake 以将库链接到我的代码,并且它正确生成,但是当我尝试构建以下内容时,会出现错误。

cmake_minimum_required(VERSION 3.18.2)


project("PROJECT_NAME")
INCLUDE_DIRECTORIES(C:/nsnmp/include)

find_library(NETSNMPAGENT "netsnmpagent")

find_library(NETSNMPMIBS "netsnmpmibs")

find_library(NETSNMP "netsnmp")



add_executable("${PROJECT_NAME}" Main.c)

target_link_libraries("${PROJECT_NAME}" ${NETSNMPAGENT} ${NETSNMPMIBS} ${NETSNMP})
[main] Building folder: Psnmp 
[build] Starting build
[proc] Executing command: "C:\Program Files\Microsoft Visual Studio\2022\Enterprise\Common7\IDE\CommonExtensions\Microsoft\CMake\CMake\bin\cmake.exe" --build c:/Users/Hanaei/Desktop/Psnmp/build --config Debug --target all --
[build] [1/1 100% :: 0.354] Linking C executable PROJECT_NAME.exe
[build] FAILED: PROJECT_NAME.exe 
[build] cmd.exe /C "cd . && C:\msys64\mingw64\bin\gcc.exe -g  CMakeFiles/PROJECT_NAME.dir/Main.c.obj -o PROJECT_NAME.exe -Wl,--out-implib,libPROJECT_NAME.dll.a -Wl,--major-image-version,0,--minor-image-version,0  C:/nsnmp/lib/libnetsnmpagent.a  C:/nsnmp/lib/libnetsnmpmibs.a  C:/nsnmp/lib/libnetsnmp.a  -lkernel32 -luser32 -lgdi32 -lwinspool -lshell32 -lole32 -loleaut32 -luuid -lcomdlg32 -ladvapi32 && cd ."
[build] C:/msys64/mingw64/bin/../lib/gcc/x86_64-w64-mingw32/12.2.0/../../../../x86_64-w64-mingw32/bin/ld.exe: C:/nsnmp/lib/libnetsnmp.a(mib.o): in function `dump_realloc_oid_to_inetaddress':
[build] C:\Users\Hanaei\Downloads\net-snmp-5.9.3\snmplib/mib.c:4085: undefined reference to `__imp_ntohl'
[build] C:/msys64/mingw64/bin/../lib/gcc/x86_64-w64-mingw32/12.2.0/../../../../x86_64-w64-mingw32/bin/ld.exe: C:/nsnmp/lib/libnetsnmp.a(mib.o): in function `parse_one_oid_index':
[build] C:\Users\Hanaei\Downloads\net-snmp-5.9.3\snmplib/mib.c:3877: undefined reference to `__imp_htonl'
[build] C:/msys64/mingw64/bin/../lib/gcc/x86_64-w64-mingw32/12.2.0/../../../../x86_64-w64-mingw32/bin/ld.exe: C:/nsnmp/lib/libnetsnmp.a(parse.o): in function `compute_match':
[build] C:\Users\Hanaei\Downloads\net-snmp-5.9.3\snmplib/parse.c:1294: undefined reference to `regcomp'
[build] C:/msys64/mingw64/bin/../lib/gcc/x86_64-w64-mingw32/12.2.0/../../../../x86_64-w64-mingw32/bin/ld.exe: C:\Users\Hanaei\Downloads\net-snmp-5.9.3\snmplib/parse.c:1297: undefined reference to `regfree'
[build] C:/msys64/mingw64/bin/../lib/gcc/x86_64-w64-mingw32/12.2.0/../../../../x86_64-w64-mingw32/bin/ld.exe: C:\Users\Hanaei\Downloads\net-snmp-5.9.3\snmplib/parse.c:1296: undefined reference to `regexec'
[build] C:/msys64/mingw64/bin/../lib/gcc/x86_64-w64-mingw32/12.2.0/../../../../x86_64-w64-mingw32/bin/ld.exe: C:\Users\Hanaei\Downloads\net-snmp-5.9.3\snmplib/parse.c:1297: undefined reference to `regfree'
[build] C:/msys64/mingw64/bin/../lib/gcc/x86_64-w64-mingw32/12.2.0/../../../../x86_64-w64-mingw32/bin/ld.exe: C:/nsnmp/lib/libnetsnmp.a(snmp_api.o): in function `_sess_open':
[build] C:\Users\Hanaei\Downloads\net-snmp-5.9.3\snmplib/snmp_api.c:1699: undefined reference to `__imp_setsockopt'
[build] C:/msys64/mingw64/bin/../lib/gcc/x86_64-w64-mingw32/12.2.0/../../../../x86_64-w64-mingw32/bin/ld.exe: C:/nsnmp/lib/libnetsnmp.a(snmp_api.o): in function `snmp_add_var':
[build] C:\Users\Hanaei\Downloads\net-snmp-5.9.3\snmplib/snmp_api.c:7514: undefined reference to `__imp_inet_addr'
[build] C:/msys64/mingw64/bin/../lib/gcc/x86_64-w64-mingw32/12.2.0/../../../../x86_64-w64-mingw32/bin/ld.exe: C:/nsnmp/lib/libnetsnmp.a(asn1.o): in function `asn_parse_float':
[build] C:\Users\Hanaei\Downloads\net-snmp-5.9.3\snmplib/asn1.c:2554: undefined reference to `__imp_ntohl'
[build] C:/msys64/mingw64/bin/../lib/gcc/x86_64-w64-mingw32/12.2.0/../../../../x86_64-w64-mingw32/bin/ld.exe: C:/nsnmp/lib/libnetsnmp.a(asn1.o): in function `asn_build_float':
[build] C:\Users\Hanaei\Downloads\net-snmp-5.9.3\snmplib/asn1.c:2628: undefined reference to `__imp_htonl'
[build] C:/msys64/mingw64/bin/../lib/gcc/x86_64-w64-mingw32/12.2.0/../../../../x86_64-w64-mingw32/bin/ld.exe: C:/nsnmp/lib/libnetsnmp.a(asn1.o): in function `asn_parse_double':
[build] C:\Users\Hanaei\Downloads\net-snmp-5.9.3\snmplib/asn1.c:2745: undefined reference to `__imp_ntohl'
[build] C:/msys64/mingw64/bin/../lib/gcc/x86_64-w64-mingw32/12.2.0/../../../../x86_64-w64-mingw32/bin/ld.exe: C:/nsnmp/lib/libnetsnmp.a(asn1.o): in function `asn_build_double':
[build] C:\Users\Hanaei\Downloads\net-snmp-5.9.3\snmplib/asn1.c:2823: undefined reference to `__imp_htonl'
[build] C:/msys64/mingw64/bin/../lib/gcc/x86_64-w64-mingw32/12.2.0/../../../../x86_64-w64-mingw32/bin/ld.exe: C:/nsnmp/lib/libnetsnmp.a(asn1.o): in function `asn_realloc_rbuild_float':
[build] C:\Users\Hanaei\Downloads\net-snmp-5.9.3\snmplib/asn1.c:3859: undefined reference to `__imp_htonl'
[build] C:/msys64/mingw64/bin/../lib/gcc/x86_64-w64-mingw32/12.2.0/../../../../x86_64-w64-mingw32/bin/ld.exe: C:/nsnmp/lib/libnetsnmp.a(asn1.o): in function `asn_realloc_rbuild_double':
[build] C:\Users\Hanaei\Downloads\net-snmp-5.9.3\snmplib/asn1.c:3937: undefined reference to `__imp_htonl'
[build] C:/msys64/mingw64/bin/../lib/gcc/x86_64-w64-mingw32/12.2.0/../../../../x86_64-w64-mingw32/bin/ld.exe: C:/nsnmp/lib/libnetsnmp.a(system.o): in function `get_myaddr':
c cmake 未定义引用 net-snmp

评论

0赞 Tsyvarev 12/3/2022
欢迎来到 Stack Overflow!在这里,我们不鼓励使用图像来表示日志。相反,将日志以文本形式粘贴到问题中。粘贴后,日志可以格式化为代码。另请参阅如何提问和 meta 上的帖子
0赞 Ali Assar 12/3/2022
@Tsyvarev 感谢您的欢迎。我已经编辑了我的问题。现在你能告诉我我该怎么办吗?

答: 暂无答案