clion windows 找不到lib库问题

是一个clion在windows下写c程序时候,在cmakelists.txt里编辑了头文件路径和库文件路径。

编译时总是提示中不到链接库,问题文件如下:

# cmake_minimum_required(VERSION <specify CMake version here>)
cmake_minimum_required(VERSION 3.16)
project(untitled C)

set(CMAKE_C_STANDARD 99)
set(INC_DIR C:/OpenSSL-Win64/include/)
set(LINK_DIR C:/OpenSSL-Win64/lib/)
set(SRC_LIST main.c)

include_directories(${INC_DIR})
link_directories(${LINK_DIR})
link_libraries(ssl crypto)
add_executable(untitled ${SRC_LIST})

target_link_libraries(untitled ssl)

结果编译总是报错:

C:/PROGRA~2/Dev-Cpp/MinGW64/bin/../lib/gcc/x86_64-w64-mingw32/4.9.2/../../../../x86_64-w64-mingw32/bin/ld.exe: cannot find -lssl
C:/PROGRA~2/Dev-Cpp/MinGW64/bin/../lib/gcc/x86_64-w64-mingw32/4.9.2/../../../../x86_64-w64-mingw32/bin/ld.exe: cannot find -lcrypto
C:/PROGRA~2/Dev-Cpp/MinGW64/bin/../lib/gcc/x86_64-w64-mingw32/4.9.2/../../../../x86_64-w64-mingw32/bin/ld.exe: cannot find -lssl
C:/PROGRA~2/Dev-Cpp/MinGW64/bin/../lib/gcc/x86_64-w64-mingw32/4.9.2/../../../../x86_64-w64-mingw32/bin/ld.exe: cannot find -lcrypto

明明头文件路径和lib路径都有文件,还是提示找不到:

 C:\OpenSSL-Win64\lib 的目录

2020/04/29  21:29    <DIR>          .
2020/04/29  21:29    <DIR>          ..
2017/11/03  21:44             1,840 capi.lib
2017/11/03  21:44             1,866 dasync.lib
2017/11/03  21:44            99,405 libcrypto-1_1-x64.def
2017/11/03  21:44           925,194 libcrypto.lib
2017/11/03  21:44            10,999 libssl-1_1-x64.def
2017/11/03  21:44            97,230 libssl.lib
2017/11/03  21:44             1,736 openssl.lib
2017/11/03  21:44             1,892 ossltest.lib
2017/11/03  21:44             1,876 padlock.lib
2020/04/29  21:29    <DIR>          VC
               9 个文件      1,142,038 字节
               3 个目录 53,557,956,608 可用字节

最后发现是 linux 和 windows 对lib库处理不同,linux直接填 ssl 就行,到windows就的填 libssl,这样修改后就正常了。

下面是正常的配置文件:注意 ssl 改成了 libssl, crypto改成了 libcrypto。

# cmake_minimum_required(VERSION <specify CMake version here>)
cmake_minimum_required(VERSION 3.16)
project(untitled C)

set(CMAKE_C_STANDARD 99)
set(INC_DIR C:/OpenSSL-Win64/include/)
set(LINK_DIR C:/OpenSSL-Win64/lib/)
set(SRC_LIST main.c)

include_directories(${INC_DIR})
link_directories(${LINK_DIR})
link_libraries(libssl libcrypto)
add_executable(untitled ${SRC_LIST})

target_link_libraries(untitled libssl)

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章