CMakeLists.txt에서 LDFLAGS를 설정하는 방법은 무엇입니까?
CMAKE_C_FLAGS에 의해 CMake에서 CFLAGS를 설정했습니다. LDFLAGS를 설정하는 것과 비슷한가요?
원하는 내용에 따라 다릅니다.
A) 연결할 라이브러리를 지정하려면 find_library 를 사용 하여 libs를 찾은 다음 link_directories 및 target_link_libraries 를 사용할 수 있습니다.
물론, 올바른 위치에 add_library (YourLib IMPORTED) 와 플랫폼 / 빌드 특정 사전 및 접미사를 사용 하여 "가져온"라이브러리를 멋지게 추가 하는 좋은 find_package 스크립트 를 작성하는 것은 종종 노력할 가치가 있습니다. 그런 다음 단순히 'YourLib'를 참조하고 target_link_libraries를 사용할 수 있습니다.
B) MinGW-GCC를 사용하여 특정 링커 플래그 (예 : '-mthreads'또는 '-Wl,-export-all-symbols')를 지정하려면 CMAKE_EXE_LINKER_FLAGS 를 사용할 수 있습니다 . 모듈, 공유 또는 정적 라이브러리에 대해 비슷하지만 문서화되지 않은 두 개의 플래그도 있습니다.
CMAKE_MODULE_LINKER_FLAGS
CMAKE_SHARED_LINKER_FLAGS
CMAKE_STATIC_LINKER_FLAGS
보다:
CMAKE_EXE_LINKER_FLAGS
CMAKE_MODULE_LINKER_FLAGS
CMAKE_SHARED_LINKER_FLAGS
CMAKE_STATIC_LINKER_FLAGS
target_link_libraries 에서 링커 플래그를 지정할 수 있습니다 .
예 를 들어 모든 링크에 플래그를 추가하려면을 -fsanitize=address사용하지 않는 것이 좋습니다 CMAKE_*_LINKER_FLAGS. 모든 것이 설정되어 있어도 OSX에서 프레임 워크를 연결할 때 플래그를 사용하지 않으며 다른 상황에서도 사용할 수 있습니다. 대신 다음을 사용하십시오 link_libraries().
add_compile_options("-fsanitize=address")
link_libraries("-fsanitize=address")
이것은 모든 것을 위해 작동합니다.
라이브러리에 대한 링크는 Andre의 답변을 참조하십시오 .
링커 플래그의 경우-다음 4 개의 CMake 변수 :
CMAKE_EXE_LINKER_FLAGS
CMAKE_MODULE_LINKER_FLAGS
CMAKE_SHARED_LINKER_FLAGS
CMAKE_STATIC_LINKER_FLAGS
ucm 의 ucm_add_linker_flags 매크로를 사용하여 다른 구성 (디버그, 릴리스 ...)에 대해 쉽게 조작 할 수 있습니다.
참고 URL : https://stackoverflow.com/questions/6077414/how-to-set-the-ldflags-in-cmakelists-txt
'Program Club' 카테고리의 다른 글
| 은 무슨 뜻인가요? (0) | 2020.12.01 |
|---|---|
| 다른 사람의 저장소를 GitHub의 Git 하위 모듈로 사용 (0) | 2020.12.01 |
| 파이썬 객체를 강제로 삭제하는 방법은 무엇입니까? (0) | 2020.12.01 |
| tar에서 다른 디렉토리로 단일 파일을 추출하는 방법은 무엇입니까? (0) | 2020.12.01 |
| y 축 matplotlib에서만 마이너 틱을 켜는 방법 (0) | 2020.12.01 |