정적 링크 boost.asio 외부 libs없이 내 작은 프로젝트에 (그것을 배포 할 수있는 단일 exe/bin 파일 만 있음). Boost.asio에는 Boost.system이 필요하며이 컴파일 방법을 알아 내려고 노력하고 있습니다. Boake.asio를 cmake와 함께 사용하는 방법?Boost.asio를 cmake와 함께 사용 하시겠습니까?
2
A
답변
7
나는 실제 질문을 이해한다면 근본적으로 CMake에서 타사 라이브러리에 대해 정적으로 링크하는 방법을 묻습니다.
제 환경에서는 부스트를 /opt/boost
에 설치했습니다.
가장 쉬운 방법은 CMake 설치에 제공 FindBoost.cmake
을 사용하는 것입니다
set(BOOST_ROOT /opt/boost)
set(Boost_USE_STATIC_LIBS ON)
find_package(Boost COMPONENTS system)
include_directories(${Boost_INCLUDE_DIR})
add_executable(example example.cpp)
target_link_libraries(example ${Boost_LIBRARIES})
모든 부스트 라이브러리를 찾아 명시 적으로 시스템 라이브러리에 링크 변종 :
set(BOOST_ROOT /opt/boost)
set(Boost_USE_STATIC_LIBS ON)
find_package(Boost REQUIRED)
include_directories(${Boost_INCLUDE_DIR})
add_executable(example example.cpp)
target_link_libraries(example ${Boost_SYSTEM_LIBRARY})
그렇게하지 않으면 적절한 부스트 설치가 있다면, 라이브러리에 정적으로 링크하는 두 가지 방법이 있습니다. 첫 번째 방법은 가져온 CMake 목표 만듭니다
add_library(boost_system STATIC IMPORTED)
set_property(TARGET boost_system PROPERTY
IMPORTED_LOCATION /opt/boost/lib/libboost_system.a
)
include_directories(/opt/boost/include)
add_executable(example example.cpp)
target_link_libraries(example boost_system)
을 그리고 대안은 명시 적으로 오히려 목표보다 target_link_libraries
에 라이브러리를 나열하는 것입니다
include_directories(/opt/boost/include)
add_executable(example example.cpp)
target_link_libraries(example /opt/boost/lib/libboost_system.a)
관련 문제
- 1. TR1이 gcc와 Cmake와 함께 작동하지 않습니다.
- 2. 큰 프로젝트에서 Cmake와 함께 boost & asio
- 3. JList를 모델과 함께 사용 하시겠습니까?
- 4. System.Threading.Timer를 CustomThreadPool과 함께 사용 하시겠습니까?
- 5. Qt를 DirectX와 함께 사용 하시겠습니까?
- 6. excetvas를 kinetic.js와 함께 사용 하시겠습니까?
- 7. Monotouch와 함께 PonyDebugger 사용 하시겠습니까?
- 8. 클래스와 객체를 함께 사용 하시겠습니까?
- 9. jQuery와 AngularJS를 함께 사용 하시겠습니까?
- 10. IDictionary를 Json과 함께 사용 하시겠습니까?
- 11. DeleteAllItems와 함께 LB_INITSTORAGE 사용 하시겠습니까?
- 12. backgrounddownloader와 savefilepicker를 함께 사용 하시겠습니까?
- 13. MSBuild를 Hudson과 함께 사용 하시겠습니까?
- 14. AsyncCommand를 errormarker와 함께 사용 하시겠습니까?
- 15. FromBase64Transform을 CryptoStream과 함께 사용 하시겠습니까?
- 16. $ .map과 $ .grep을 함께 사용 하시겠습니까?
- 17. popen을 mkvtoolnix와 함께 사용 하시겠습니까?
- 18. 코와 함께 iPython 사용 하시겠습니까?
- 19. MongoDB와 Redis를 함께 사용 하시겠습니까?
- 20. MSpec과 MBUnit을 함께 사용 하시겠습니까?
- 21. SimpleCursorAdapter를 Spinner와 함께 사용 하시겠습니까?
- 22. URI와 함께 SoundPool을 사용 하시겠습니까?
- 23. NewSQL과 함께 MySQL을 사용 하시겠습니까?
- 24. APNS 주제가 함께 사용 하시겠습니까?
- 25. IFLC와 함께 CONCAT을 사용 하시겠습니까?
- 26. TFSBuild.proj를 RTC와 함께 사용 하시겠습니까?
- 27. Reactjs를 Dexie.js와 함께 사용 하시겠습니까?
- 28. PHP + VoltDB를 함께 사용 하시겠습니까?
- 29. AJAX를 폼과 함께 사용 하시겠습니까?
- 30. to_sentence와 html_safe를 함께 사용 하시겠습니까?
모든 부스트 구성 요소를 정적으로 링크 할 수 있습니다. 너의 문제는 또 뭐야? –
내가 왜 그것을 컴파일 할 수없는 몇 가지 문제를 찾을 때마다, 나는 많은 시간을 봤어. 그래서 나는 그것을 정확하게하는 방법을 질문했다. 나는 cmake로 부스트를 컴파일 할 수없고, 내 프로젝트에서 cmake를 정적으로 사용하는 법도 모른다. – Fedcomp
'FindBoost.cmake'의 내용을 살펴보십시오. CMake 설치의'Modules /'dir에서 찾을 수 있습니다. – arrowd