prosource

프로젝트에서 소스 파일을 독립적으로 컴파일하도록 CLion을 구성할 수 있습니까?

probook 2023. 8. 16. 22:28
반응형

프로젝트에서 소스 파일을 독립적으로 컴파일하도록 CLion을 구성할 수 있습니까?

저는 현재 JetBrain CLion IDE를 사용하여 C에서 몇 가지 프로젝트 오일러 과제를 수행하고 있습니다.Python과 Java(각각 PyCharm과 IntelliJ)에서 이러한 작업을 완료하면 항상 "ProjectEuler"라는 단일 프로젝트를 만들고 독립적으로 실행할 수 있는 소스 파일을 추가할 수 있었습니다.하지만 CLion에서는 동일한 작업이 불가능한 것 같습니다.제가 문제를 해결하기 위해 사용하는 각 소스 파일에는 main() 함수가 포함되어 있으며, Cmake는 컴파일을 시도할 때마다 ("main"의 다중 정의) 그것에 대해 불만족스러워합니다.

CmakeLists를 다시 작성할 필요 없이 한 번에 프로젝트의 단일 소스 파일만 컴파일하고 실행하도록 CLion을 구성할 수 있는 방법이 있습니까?매번 모든 문제에 대해 txt 또는 새 프로젝트를 생성하시겠습니까?

C가 컴파일되고 Java나 Python처럼 해석되지 않는다는 것을 알고 있지만, 모든 소스 파일을 수동으로 컴파일할 수 있습니다.CLion을 구성하여 동일한 작업을 수행할 수 있는 방법이 있습니까?만약 그렇다면, 어떻게?

CmakeLists에서 여러 실행 파일을 정의할 수 있습니다.각 문제에 대한 txt.

대신에

add_executable(projecteuler ${SOURCE_FILES})

정의할 수 있습니다.

add_executable(problem1 problem1.c)
add_executable(problem2 problem2.c)

그런 다음 각 실행 파일(문제 1, 문제 2 등)에 대해 독립적으로 실행할 수 있는 실행 구성을 얻습니다.이 경우 매번 다시 쓸 필요가 없고 대신 새 원본 파일을 새 실행 파일에 추가합니다.

저도 같은 문제에 직면했지만, 매번 Cmake 파일을 편집하고 실행 파일을 추가하는 것은 힘든 일입니다.그래서 해결책을 찾았어요

당신을 위해 원활하게 해주는 플러그인이 있습니다.

플러그인을 CLion에 추가하기만 하면 실행 가능한 파일을 마우스 오른쪽 단추로 클릭하여 실행 가능으로 추가할 수 있습니다.

Cmake 파일을 자동으로 편집합니다.

링크:

https://plugins.jetbrains.com/plugin/8352-c-c--single-file-execution

사용할 수 있습니다.

cmake_minimum_required(VERSION 2.8.4)

add_subdirectory(src/prj1)
add_subdirectory(src/prj2)

그런 다음 각 디렉터리에 다른 CmakeLists를 만듭니다.이런 식으로 txt:

cmake_minimum_required(VERSION 2.8.4)
project(prj1)

set(EXEC_NAME prj1)

set(SOURCE_FILES
    main_prj1.cpp
    x.cpp
    y.cpp
)

set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -std=c++11")

set(EXECUTABLE_OUTPUT_PATH ../../dist/${CMAKE_BUILD_TYPE})

add_executable(${EXEC_NAME} ${SOURCE_FILES})

사용할 수 있습니다.file(GLOB SOURCE_FILES *.cpp)파일을 자동으로 컴파일에 추가하려는 경우하지만 이 "꼼수"는 강하게 장려되지 않는다는 것을 명심하십시오.

그러면 빌드 구성도 CLion에 자동으로 추가됩니다.

이러한 행을 CMakeLists.txt에 추가할 수 있습니다.

    #GLOB_RECURSE will find files in all subdirectories that match the globbing expressions and store it into the variable.
    file(GLOB_RECURSE APP_SOURCES *.c)
    foreach (testsourcefile ${APP_SOURCES})
        #get filename without extension
        get_filename_component(testname ${testsourcefile} NAME_WE)
        #add executable for all file
        add_executable(${testname} ${testsourcefile})
    endforeach (testsourcefile ${APP_SOURCES})

프로젝트에서 파일을 추가하거나 삭제할 때마다 cmake 프로젝트(Tools -> Cmake)를 다시 로드해야 합니다.또한 파일을 더 많이 추가하면 빌드 시간이 길어집니다. 더 와 하위 디렉터리를 하고 또는더많디리및디를리작하사성수있다습니용할고하토렉을 할 수 있습니다.file(GLOB_RECURSE APP_SOURCES path/to/*.c)그래서 그것은 그 파일들만 만들 것입니다.

CmakeLists는 각 파일해야 합니다.Reload을 누른 후 오쪽상모의버튼을누른다설다음니정합서리단른다▁button▁on니설합정다▁and▁then▁corner를 설정합니다.run debug configuration실행하려는 소스 파일 이름으로 이동합니다.

언급URL : https://stackoverflow.com/questions/30239385/is-it-possible-to-configure-clion-to-compile-source-files-in-a-project-independe

반응형