2016-03-04 59 views
0

我想鏈接在我的CMakeLists.txt中的捲曲庫,我知道我應該要求包添加可執行文件並鏈接庫,但我不知道如何調用變量名稱,我應該在哪裏尋找他們,你知道我應該在哪裏尋找?有沒有辦法列出我可以在我的項目中添加的系統中的所有庫?如何列出系統上可用的target_link_libraries?

這是我的CMakeLists(傻)的嘗試:

cmake_minimum_required(VERSION 3.3) 
project(RadekClientRecon) 
find_package(OpenCV REQUIRED) 
find_package(CURL REQUIRED) 
link_directories(/usr/lib/) 
set(SOURCE_FILES main.cpp HttpManager.cpp) 
add_executable(RadekClientRecon ${SOURCE_FILES}) 
target_link_libraries(RadekClientRecon ${OpenCV_LIBS} ${CURL_LIBRARIES}) 
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -std=c++11") 

我找遍了所有「捲曲」命名的文件在我的電腦,如果有幫助,我還使用克利翁,如果有一個自動化的方式。

[email protected]:~/Projects/radekrecon$ sudo find/-name "*curl*" 2> /dev/null 
/home/rinaldi/.atom/packages/atom-beautify/node_modules/jscs/lib/rules/disallow-curly-braces.js 
/home/rinaldi/.atom/packages/atom-beautify/node_modules/jscs/lib/rules/require-curly-braces.js 
/var/lib/dpkg/info/libcurl3:amd64.list 
/var/lib/dpkg/info/python3-pycurl.md5sums 
/var/lib/dpkg/info/libcurl3-gnutls:amd64.shlibs 
/var/lib/dpkg/info/curl.md5sums 
/var/lib/dpkg/info/libcurl3:amd64.postrm 
/var/lib/dpkg/info/libcurl3:amd64.md5sums 
/var/lib/dpkg/info/python3-pycurl.list 
/var/lib/dpkg/info/libcurl3-gnutls:amd64.symbols 
/var/lib/dpkg/info/libcurl3-gnutls:amd64.postrm 
/var/lib/dpkg/info/libcurl3:amd64.symbols 
/var/lib/dpkg/info/libcurl3-gnutls:amd64.md5sums 
/var/lib/dpkg/info/libcurl3:amd64.postinst 
/var/lib/dpkg/info/libcurl3:amd64.shlibs 
/var/lib/dpkg/info/python3-pycurl.postinst 
/var/lib/dpkg/info/curl.list 
/var/lib/dpkg/info/python3-pycurl.prerm 
/var/lib/dpkg/info/libcurl3-gnutls:amd64.postinst 
/var/lib/dpkg/info/libcurl3-gnutls:amd64.list 
/opt/clion-1.2.4/bin/cmake/doc/cmake-3.3/cmcurl 
/opt/clion-1.2.4/bin/gdb/lib/python2.7/macurl2path.py 
/usr/lib/python2.7/macurl2path.py 
/usr/lib/python3.5/macurl2path.py 
/usr/lib/x86_64-linux-gnu/libcurl-gnutls.so.4 
/usr/lib/x86_64-linux-gnu/libcurl.so.4 
/usr/lib/x86_64-linux-gnu/libcurl-gnutls.so.3 
/usr/lib/x86_64-linux-gnu/libcurl.so.3 
/usr/lib/x86_64-linux-gnu/libcurl-gnutls.so.4.3.0 
/usr/lib/x86_64-linux-gnu/gstreamer-0.10/libgstcurl.so 
/usr/lib/x86_64-linux-gnu/libcurl.so.4.3.0 
/usr/lib/python3/dist-packages/pycurl.cpython-35m-x86_64-linux-gnu.so 
/usr/lib/python3/dist-packages/curl 
/usr/lib/python3/dist-packages/pycurl-7.19.5.1.egg-info 
/usr/lib/python3/dist-packages/pycurl.cpython-34m-x86_64-linux-gnu.so 
/usr/lib/python3.4/macurl2path.py 
/usr/lib/gnupg/gpgkeys_curl 
/usr/bin/curl 
/usr/share/man/man1/curl.1.gz 
/usr/share/lintian/overrides/libcurl3 
/usr/share/lintian/overrides/libcurl3-gnutls 
/usr/share/doc/libcurl3 
/usr/share/doc/python3-pycurl 
/usr/share/doc/libcurl3-gnutls 
/usr/share/doc/curl 
/usr/share/bash-completion/completions/curl 

回答

2

顯然我需要安裝一些捲曲以外的包。

* libcurl4-gnutls-dev 
* libcurl4-nss-dev 
* libcurl4-openssl-dev 

這些變量以其模塊的名稱命名,可以找到它們的模塊here。 我CMakeList.txt現在它創造適當的make文件,看起來像這樣:

cmake_minimum_required(VERSION 3.3) 
project(RadekClientRecon) 
find_package(OpenCV REQUIRED) 
find_package(CURL REQUIRED) 
link_directories(/usr/lib/) 
link_directories(CURL_INCLUDE_DIRS) 
set(SOURCE_FILES main.cpp HttpManager.cpp) 
add_executable(RadekClientRecon ${SOURCE_FILES}) 
target_link_libraries(RadekClientRecon ${OpenCV_LIBS} ${CURL_LIBRARIES}) 
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -std=c++11") 
+0

這行代碼沒用'link_directories(CURL_INCLUDE_DIRS)',我相信你也不需要這個:link_directories(/ usr/lib /)' – ixSci

0

驗證卷曲的安裝後,這是我的CMakeLists.txt,這是在Ubuntu上運行良好17.10

cmake_minimum_required(VERSION 2.8) 

set(CURL_MIN_VERSION "7.55.1") 

project(Downloader) 

find_package(CURL REQUIRED) 

link_directories(/usr/lib/x86_64-linux-gnu/) 

add_executable(Downloader HTTPDownloaderExample.cpp HTTPDownloader.cpp) 

target_link_libraries(Downloader curl) 
相關問題