Cmake传递参数
问题描述:
我有一个程序根据它们的签名识别文件。很棒。但我是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
,然后你说
./Assignment6 gifFile.gif
如何获得CMake的末接受的说法,“的gifFile。 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;
}
感谢。这适用于传递参数,但由于某种原因,它现在位于argv [0]。必须与我的其他机器上编译与gcc的方式有关。欣赏小费虽然! – Avallauch