2017-10-29 3 views
0

Ich habe ein Programm, um Dateien anhand ihrer Signaturen zu erkennen. Funktioniert super. Aber ich bin neu in C und versuche jetzt, eine IDE namens CLion zum Laufen zu bringen. Jedoch kann ich nicht herausfinden, wie man Befehlsargumente zu cmake hinzufügt - so dass ich es tun kann, wenn ich main ausführe und eine gifFile oder eine pdfFile übergeben möchte. Hier ist mein Code soweit für CMake.Cmake Argumente übergeben

cmake_minimum_required(VERSION 3.8) 
project(Assignment6) 

set(CMAKE_C_STANDARD 99) 

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

in der Befehlszeile das wäre so etwas wie

gcc file_recognizer.c -o Assignment6 

und dann sagen Sie

./Assignment6 gifFile.gif 

Wie ich Cmake tun bekommen das Argument am Ende zu akzeptieren „, gifFile. gif "?

Unten ist meine Hauptfunktion als Referenz benötigt, wenn

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; 
} 

Antwort

1

Das ist nicht etwas CMake ausgelegt ist zu tun. Ich meine, es ist machbar mit CMake:

add_custom_command(OUTPUT output COMMAND Assignment6 ARGS gifFile.gif) 

Aber was es klingt wie das, was Sie wollen, ist nicht Teil des Build-Prozesses und CMake dreht sich alles um das Erstellen, Testen und Verpackungs Software nicht es laufen lassen.

Da Sie CLion verwenden, sollten Sie die Programmargumente in CLion zu Debugging-Zwecken besser einstellen.

Klicken Sie hier:

Edit Configurations

und Ihre args hier eingeben:

enter image description here

+1

Dank. Dies funktioniert, um ein Argument zu übergeben, aber aus irgendeinem Grund ist es jetzt bei argv [0]. Muss damit zu tun haben, wie es gegen gcc auf meiner anderen Maschine kompiliert. schätze den Tipp! – Avallauch

Verwandte Themen