CMake - 删除参数

时间:2017-09-27 12:34:16

标签: c cmake clion

我在使用Cmake时遇到了一些麻烦。在我启动项目时,似乎我做了一些让Cmake添加参数的东西。以下是我的运行配置。

Current settings

当我调试它时,我可以看到"/home/gel/unix/DB1457--LAB2/cmake-build-debug/lab2" 具有值:

-p 8080

(它是编译的目标文件的路径)。

如果有的话,它应该是cmake_minimum_required(VERSION 3.8) project(lab2) set(CMAKE_C_STANDARD 99) file(GLOB_RECURSE SORUCE_FILES "webserver/src/*.c") file(GLOB_RECURSE SOURCE_HEADERS "webserver/includes/*.h") set(INCLUDE_DIRS "webserver/includes") foreach (_headerFile $(SOURCE_HEADERS)) get_filename_component(_dir ${_headerFile} PATH) list (APPEND INCLUDE_DIRS ${_dir}) endforeach() list(REMOVE_DUPLICATES INCLUDE_DIRS) include_directories(${INCLUDE_DIRS}) add_executable(lab2 ${SORUCE_FILES} ${HEADER_FILES}) set(THREADS_PREFER_PTHREAD_FLAG ON) find_package(Threads REQUIRED) target_link_libraries(lab2 Threads::Threads) ,对吧?

这是我的CMakeLists:

{{1}}

1 个答案:

答案 0 :(得分:0)

不,argv中的第一个字符串始终是可执行文件的路径。实际参数从索引1开始。

在您的示例中,argv[1]将包含" -p"并且argv[2]将有" 8080"因为它们是两个独立的参数。如果您希望将它们作为一个参数传递,您需要将它们用引号括起来或删除它们之间的空格。