c++ - CMake,MinGW=未定义对 GetIpAddrTable-> iphlpapi.h 的引用
问题描述
我有一个在 Linux 中运行良好的 CMake 项目,但在 Windows 下却不行。第一个问题来自最终链接:
[100%] Linking CXX shared library libProjlib.dll
CMakeFiles\Projlib.dir/objects.a(configserver.cpp.obj): In function `ConfigServer::findAdapter(unsigned long*)':
C:/Users/jose/Documents/git-Projects/Proj/Projlib/configserver.cpp:859: undefined reference to `GetIpAddrTable'
Error 1
findAdapter 属于 C:\Qt\Tools\mingw810_64\x86_64-w64-mingw32\include\iphlpapi.h,但不自动链接
我认为我的项目配置错误。我想选择MinGW编译器,自动通过CMakeLists.txt(目前我配置编译器是指cmake-gui.exe ..),自然能解决问题,但不知道怎么弄。(谷歌没有给我解决方案)
请,任何帮助或建议,链接..等都会受到欢迎。
这是我的 CMakeLists.txt
cmake_minimum_required(VERSION 3.13)
set(CMAKE_PROJECT_NAME "testProject")
project(${CMAKE_PROJECT_NAME})
set(CMAKE_BUILD_TYPE Debug)
if("Windows" STREQUAL "${CMAKE_SYSTEM_NAME}")
message(STATUS "_______________________________________Compiling on Windows")
elseif("Linux" STREQUAL "${CMAKE_SYSTEM_NAME}")
message(STATUS "_______________________________________Compiling on GNU/Linux :-)")
endif()
set(CMAKE_BUILD_PARALLEL_LEVEL 8)
set(CMAKE_CXX_STANDARD 17)
set(CMAKE_CXX_STANDARD_REQUIRED ON)
#list(APPEND CMAKE_PREFIX_PATH "/home/enigma/Qt/5.15.2/gcc_64") #linux
list(APPEND CMAKE_PREFIX_PATH "C:\\Qt\\Tools\\mingw810_64")
set(CMAKE_AUTOMOC ON)
set(CMAKE_AUTOUIC ON)
set(CMAKE_AUTORCC ON)
set(CMAKE_INCLUDE_CURRENT_DIR ON)
message(STATUS "___________________________________________________${CMAKE_BUILD_TYPE}")
if(CMAKE_BUILD_TYPE STREQUAL "Debug")
set(binPath "binDebugProj")
elseif()
set(binPath "binProj")
endif()
set(TMP_BUILD "tmpBuild")
set(Proj_LIB "Projlib")
add_subdirectory(${Proj_LIB} "${CMAKE_SOURCE_DIR}/../${binPath}/${TMP_BUILD}/${Proj_LIB}")
include_directories(${Proj_LIB})
解决方案
解决方案是: target_link_libraries(${CARDEA_LIB} PUBLIC Qt5::Core Qt5::Network iphlpapi)
最后确实奏效了。(我在另一个 CMakeLists.txt AGGHH 中节省了时间,今天的时间太长了)
推荐阅读
- angular - 如何使用角度 8 显示和隐藏特定的表格行
- regex - Kotlin 正则表达式匹配括号内容
- php - 如何为 Bing Ads 订阅或启用我的 Azure 应用程序?
- eiffel - 如何从数字声明 INTEGER_64?
- python - cmudict.dict() 与 cmudict.entries() (Python3, NLTK)
- python - 如何使用python将异常回溯写入文件
- python - 如何使用相对路径从不同的目录导入 python 脚本?
- google-apps-script - 为什么 Google Apps 脚本仅在脚本执行结束后才将分页符和数据插入表中?
- typescript-compiler-api - TypeScript 编译器:TypeChecker#getTypeAtLocation() 为非本地类型返回错误
- java - 如何在基于数组的 BST 中找到第 k 个最小元素?(爪哇)