我正在使用CMake和MinGW32在C++中做小项目,这需要libcurl库,但是当我尝试静态链接构建libcurl.a时,我得到了未定义的引用错误
undefined reference to `_imp__curl_easy_init' undefined reference to `_imp__curl_easy_setopt' undefined reference to `_imp__curl_easy_perform' undefined reference to `_imp__curl_easy_getinfo' undefined reference to `_imp__curl_easy_strerror'
我在dep/curl中有cURL源代码,在src文件夹中有源代码.这就是我的项目的CMakeLists.txt的样子:
project(ShutdownServer) cmake_minimum_required(VERSION 2.8) set(CMAKE_BUILD_TYPE "Release") set(CURL_STATICLIB true) set(BUILD_CURL_EXE false) add_subdirectory(dep/curl) set(TARGET_NAME "ShutdownServer") set(LIBCURL_DIR ${PROJECT_SOURCE_DIR}/dep/curl) aux_source_directory(src SRC_LIST) add_executable(${TARGET_NAME} ${SRC_LIST}) find_path(LIBCURL_INCLUDE_DIR curl/curl.h HINTS ${LIBCURL_DIR}/include) include_directories(${LIBCURL_INCLUDE_DIR}) add_dependencies(${TARGET_NAME} libcurl) set(LIBS ${LIBS} ws2_32) set(LIBS ${LIBS} iphlpapi) set(LIBS ${LIBS} libcurl) target_link_libraries(${TARGET_NAME} ${LIBS}) set(CMAKE_EXE_LINKER_FLAGS "-static -static-libgcc -static-libstdc++")
当我将CURL_STATICLIB选项切换为false并动态生成libcurl时,项目构建正常,但我宁愿将所有内容构建到一个二进制文件中.有人可以告诉我这有什么问题吗?