2017-09-27 64 views
0

我在Cmake遇到了一些麻煩。看起來我已經做了一些讓Cmake在開始我的項目時添加參數的東西。以下是我的運行配置。CMake - 刪除參數

Current settings

當我調試它,我可以看到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) 

回答

0

不,argv第一個字符串始終是可執行文件的路徑。實際參數從索引1開始。

在您的示例中,argv[1]將包含「-p」,並且argv[2]將具有「8080」,因爲它們是兩個單獨的參數。如果您希望將它們作爲一個參數傳遞,則需要將它們放在引號中或刪除它們之間的空格。