반응형
cmake와 libpthread
나는 실행 해요 RHEL 5.1사용 gcc.
컴파일 및 링크 cmake에 추가 -pthread하도록 하려면 어떻게 합니까?
다음은 깨끗하고 (사용하여 find_package) 작동 해야합니다 (찾기 모듈은이라고 함 FindThreads).
cmake_minimum_required (VERSION 2.6)
find_package (Threads)
add_executable (myapp main.cpp ...)
target_link_libraries (myapp ${CMAKE_THREAD_LIBS_INIT})
@Manuel은 거기에있었습니다. 다음과 같이 컴파일러 옵션을 추가 할 수도 있습니다.
CMake 3.1.0 이상을 사용 하면 훨씬 쉬워집니다 .
set(THREADS_PREFER_PTHREAD_FLAG ON)
find_package(Threads REQUIRED)
target_link_libraries(my_app Threads::Threads)
CMake 2.8.12+를 사용하는 경우 다음과 같이 단순화 할 수 있습니다.
find_package(Threads REQUIRED)
if(THREADS_HAVE_PTHREAD_ARG)
target_compile_options(my_app PUBLIC "-pthread")
endif()
if(CMAKE_THREAD_LIBS_INIT)
target_link_libraries(my_app "${CMAKE_THREAD_LIBS_INIT}")
endif()
이전 CMake 버전에는 다음이 필요할 수 있습니다.
find_package(Threads REQUIRED)
if(THREADS_HAVE_PTHREAD_ARG)
set_property(TARGET my_app PROPERTY COMPILE_OPTIONS "-pthread")
set_property(TARGET my_app PROPERTY INTERFACE_COMPILE_OPTIONS "-pthread")
endif()
if(CMAKE_THREAD_LIBS_INIT)
target_link_libraries(my_app "${CMAKE_THREAD_LIBS_INIT}")
endif()
CMake 3.1 이상에서 처음 두 가지 방법 중 하나를 사용하려면 set(THREADS_PREFER_PTHREAD_FLAG ON)이 방법도 필요합니다 .
올바른 대답은 다음과 같습니다.
ADD_EXECUTABLE(your_executable ${source_files})
TARGET_LINK_LIBRARIES( your_executable
pthread
)
에 해당
-lpthread
참고 URL : https://stackoverflow.com/questions/1620918/cmake-and-libpthread
반응형
'Programming' 카테고리의 다른 글
| SQL Server에서 ID 열을 업데이트하는 방법은 무엇입니까? (0) | 2020.06.04 |
|---|---|
| Visual Studio 2017에서 JavaScript 빌드 오류를 비활성화하는 방법은 무엇입니까? (0) | 2020.06.04 |
| 파이썬에서 뒤로 루프하는 법? (0) | 2020.06.04 |
| 부울 필드의 경우 getter / setter의 명명 규칙은 무엇입니까? (0) | 2020.06.04 |
| PHP 배열의 값을 지우는 가장 좋은 방법 (0) | 2020.06.04 |