프로젝트에서 소스 파일을 독립적으로 컴파일하도록 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
'prosource' 카테고리의 다른 글
LINQ패드 및 오라클 (0) | 2023.08.16 |
---|---|
명령 출력을 텍스트인 것처럼 필터링 (0) | 2023.08.16 |
장고: 새로운 데이터베이스 항목에서 html 내용을 새로 고치는 방법 (0) | 2023.08.16 |
PHP 디스트럭터 (0) | 2023.08.16 |
nbviewer로 시각화된 ipython 노트북의 셀에서 코드를 숨기는 방법은 무엇입니까? (0) | 2023.08.16 |