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)

 

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