2017-09-27 17 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]には2つの個別のパラメータがあるため、 "8080"が含まれます。パラメータを1つのパラメータとして渡す場合は、引用符で囲むか、引用符で囲む必要があります。

関連する問題