add_library(target1 funtion.c target1.c)
add_library(target2 funtion.c target2.c)
add_executable(main.out main.c)
target_link_libraries(main.out target1 target2 ${LDFLAGS})
여기 내 CMakeLists.txt
입니다.CMake : 여러 대상이 같은 소스 파일을 사용합니다.
두 대상 모두 소스 파일 function.c
을 사용해야합니다. 그것은 실행할 수 있습니다. 내 관심사는 아마도 CMakeList.txt
을 작성하는 데 좋은 행동이 아니겠습니까?
둘 다 function.c를 사용하는 main.out 링크 targe1 및 target2에 중복되는 심볼이 발생합니까? – user60627
예, 심볼 중복이 발생합니다. 그런 다음 첫 번째 옵션 ('function.c '을 이동하여 라이브러리를 분리하고'target1'과'target2'을 연결)을 사용하는 것이 좋습니다. CMake는'function'이'main.out'에 한 번만 연결된다는 것에주의를 기울일 것입니다. – ivaigult