2017-10-29 20 views
0

私は、署名に基づいてファイルを認識するためのプログラムを持っています。よく働く。しかし、私はCの新人で、現在はCLionというIDEを開発しようとしています。しかし、私はcmakeにコマンド引数を追加する方法を理解できません。つまり、mainを実行し、gifFileやpdfFileを渡して認識できるようにする場合です。ここまではcmakeのための私のコードです。これは引数を渡すこと

gcc file_recognizer.c -o Assignment6 

ようなものになるだろうと、あなたは私が終わり、「たgifFileで引数を受け入れるようにcmakeのを取得するにはどうすればよい

./Assignment6 gifFile.gif 

言う。コマンドラインで

cmake_minimum_required(VERSION 3.8) 
project(Assignment6) 

set(CMAKE_C_STANDARD 99) 

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

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とgccのコンパイル方法と関係があります。しかし、ヒントをありがとう! – Avallauch