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