【问题标题】:CMake - Remove argumentsCMake - 删除参数
【发布时间】:2017-09-27 12:34:16
【问题描述】:

我在使用 Cmake 时遇到了一些问题。似乎我做了一些让 Cmake 在我开始我的项目时添加参数的事情。下面是我的运行配置。

当我调试它时,我可以看到 argv 具有值:

"/home/gel/unix/DB1457--LAB2/cmake-build-debug/lab2"

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

如果有的话,应该是-p 8080吧?

这是我的 CMakeLists:

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)

【问题讨论】:

    标签: c cmake clion


    【解决方案1】:

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

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2016-06-10
      相关资源
      最近更新 更多