2017-10-29 12 views
0

해당 서명을 기반으로 파일을 인식하는 프로그램이 있습니다. 훌륭하게 작동합니다. 하지만 C 언어를 처음 접했고 이제는 CLion이라는 IDE를 사용하려고합니다. 그러나 cmake에 명령 인수를 추가하는 방법을 알아낼 수 없습니다. 즉, main을 실행하고 gifFile 또는 pdfFile을 전달하여이를 인식 할 수 있도록 할 수 있습니다. 지금까지는 cmake의 코드가 있습니다. 명령 줄에서Cmake 인수 전달

cmake_minimum_required(VERSION 3.8) 
project(Assignment6) 

set(CMAKE_C_STANDARD 99) 

set(SOURCE_FILES file_recognizer.c) 
add_executable(Assignment6 ${SOURCE_FILES}) 

gcc file_recognizer.c -o Assignment6 

와 같은이 될 뭔가 당신은 내가 ", 마지막에 gifFile을 인수에 동의 cmake를받을 수 있나요 어떻게

./Assignment6 gifFile.gif 

을 말한다. gif "?

int main(int argc, char const *argv[]) { 
    FILE *yourFile; 
    unsigned char *fileBytes, *fileType; 
    long fileLength; 

    fileLength = 10; 
    if(argc != 2 || (yourFile = fopen(argv[1], "rb")) == NULL) { 
     printf("Invalid Input\n"); 
     exit(-1); 
    } 

    fileBytes = readFile(yourFile, fileLength, fileBytes); 
    determineFileType(fileBytes, fileType); 

    return 0; 
} 

답변

1

필요한이 CMake를 할 수 있도록 설계되었습니다 무언가가 아닌 경우

은 아래 참조 내 주요 기능입니다.

add_custom_command(OUTPUT output COMMAND Assignment6 ARGS gifFile.gif) 

를하지만 당신이 무엇을 원하는 같은 소리하면 빌드 프로세스의 일부가 아니며 CMake 건물, 테스트, 패키지 소프트웨어,하지에 대한 모든 것입니다 : 나는 그것을 할-수 CMake로의 의미 그것을 실행합니다.

CLion을 사용하고 있으므로 디버깅을 위해 CLion에서 프로그램 인수를 설정하는 것이 좋습니다. 여기

클릭 :

Edit Configurations

여기 당신의 인수를 입력 :

enter image description here

+1

감사합니다. 이 인수를 전달하기 위해 작동하지만, 어떤 이유로 argv [0]에 있습니다. 내 컴퓨터에서 컴파일하는 방법과 gcc를 비교해야합니다. 팁을 바르게 평가한다! – Avallauch