CMakeLists报告错误:ld:找不到-l

这是我的CMakeLists.txt:

cmake_minimum_required(VERSION 3.14)

project(testlib C)

set(CMAKE_C_STANDARD 99)


include_directories(/usr/local/include/)
find_library(iconv_lib iconv)
add_executable(testlib  library.c)
target_link_libraries(testlib libiconv.a)

此文件夹/usr/local/include/中的文件:

iconv.h  localcharset.h

CMake报告错误:

====================[ Build | testlib | Debug ]=================================
D:\.CLion2019.2\system\cygwin_cmake\bin\cmake.exe --build /cygdrive/d/project/c/testlib/cmake-build-debug --target testlib -- -j 4
Scanning dependencies of target testlib
[ 50%] Building C object CMakeFiles/testlib.dir/library.c.o
[100%] Linking C executable testlib.exe
/usr/lib/gcc/x86_64-pc-cygwin/7.4.0/../../../../x86_64-pc-cygwin/bin/ld: cannot find -liconv
collect2: error: ld returned 1 exit status
make[3]: *** [CMakeFiles/testlib.dir/build.make:84: testlib.exe] Error 1
make[2]: *** [CMakeFiles/Makefile2:76: CMakeFiles/testlib.dir/all] Error 2
make[1]: *** [CMakeFiles/Makefile2:83: CMakeFiles/testlib.dir/rule] Error 2
make: *** [Makefile:118: testlib] Error 2
nengdong213 回答:CMakeLists报告错误:ld:找不到-l

如果实际上找到了find_library()位于的库,则似乎您没有使用它。如果找不到该库,则可以添加搜索路径以告诉CMake在何处可以找到该库:

find_library(iconv_lib 
    NAMES iconv
    PATHS /path/containing/your/iconv/lib
)

最后,使用在调用iconv_lib时定义的target_link_libraries()变量,如下所示:

target_link_libraries(testlib PUBLIC ${iconv_lib})
本文链接:https://www.f2er.com/2919799.html

大家都在问