Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/csharp-4.0/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Amazon web services cmake文件中cmake命令的分号分隔列表_Amazon Web Services_Cmake_Aws Sdk - Fatal编程技术网

Amazon web services cmake文件中cmake命令的分号分隔列表

Amazon web services cmake文件中cmake命令的分号分隔列表,amazon-web-services,cmake,aws-sdk,Amazon Web Services,Cmake,Aws Sdk,我正在我的应用程序中构建amazon的aws sdk cpp。因此,我从awsdkcpp.tar.gz文件中提取内容,并作为ExternalProject运行 ExternalProject_Add(awssdk PREFIX DIR URL ${CMAKE_CURRENT_SOURCE_DIR}/${AWS_SDK_SRC_TAR} BUILD_COMMAND ${CMAKE_COMMAND} cmake -DCMAKE_BUILD_TYPE=Debug -DBUILD

我正在我的应用程序中构建amazon的aws sdk cpp。因此,我从
awsdkcpp.tar.gz
文件中提取内容,并作为ExternalProject运行

ExternalProject_Add(awssdk
    PREFIX DIR
    URL ${CMAKE_CURRENT_SOURCE_DIR}/${AWS_SDK_SRC_TAR}
    BUILD_COMMAND ${CMAKE_COMMAND} cmake -DCMAKE_BUILD_TYPE=Debug -DBUILD_ONLY='dynamodb;kenisis' -DCMAKE_INSTALL_PREFIX=${CMAKE_BINARY_DIR}/Ext/Aws/CtcInstall/${CMAKE_INSTALL_PREFIX} -DENABLE_TESTING=OFF ${CMAKE_BINARY_DIR}/source

但是,当我通过
-DBUILD_ONLY='dynamodb;kenisis’
(由aws cmake文件支持),生成失败。如果我通过了
-DBUILD\u ONLY=dynamodb
,则只生成与dynamodb相关的目标。但我也需要相关的目标。如何在ExternalProject_Add中传递分号分隔的列表。

我自己做了一些测试-包括@usr1234567注释中的提示-我成功地运行了以下命令(为了更容易重复,我在示例中添加了Git地址):

笨拙的双反斜杠是必要的,因为
ExternalProject\u Add()

备选方案

一种更通用的方法是使用
$
生成器表达式,如下所示:

ExternalProject_Add(
    awssdk
    PREFIX DIR
    GIT_REPOSITORY https://github.com/aws/aws-sdk-cpp.git
    CMAKE_ARGS
        -DCMAKE_BUILD_TYPE=${CMAKE_BUILD_TYPE}
        -DBUILD_ONLY=dynamodb$<SEMICOLON>kinesis
        -DCMAKE_INSTALL_PREFIX=${CMAKE_BINARY_DIR}/Ext/Aws/CtcInstall
        -DENABLE_TESTING=OFF
)
ExternalProject\u添加(
awssdk
前缀目录
GIT_存储库https://github.com/aws/aws-sdk-cpp.git
CMAKE_ARGS
-DCMAKE_BUILD_TYPE=${CMAKE_BUILD_TYPE}
-DBUILD_ONLY=dynamodb$kinesis
-DCMAKE_INSTALL_PREFIX=${CMAKE_BINARY_DIR}/Ext/Aws/CtcInstall
-可变性_测试=关闭
)

出于演示目的,我还在这里使用另一种传递参数的方式。

您是否只是键入了它,因为它应该是
运动
,当然?请尝试使用双引号。有关CMake命令行中单引号/双引号问题的更多详细信息,请参见,例如,您是否尝试过
\?是的,弗洛里安,我试过用双引号。但是错误是
add\u子目录给定的源“aws cpp sdk-”dynamodb”,它不是一个现有的目录。
因此,它没有搜索
aws cpp sdk dynamodb
,而是搜索
aws cpp sdk-”dynamodb
。我已经尝试了
\”
(错误:如上注释所述)和
\
(错误:无效的转义序列\')。
ExternalProject_Add(
    awssdk
    PREFIX DIR
    GIT_REPOSITORY https://github.com/aws/aws-sdk-cpp.git
    CMAKE_ARGS
        -DCMAKE_BUILD_TYPE=${CMAKE_BUILD_TYPE}
        -DBUILD_ONLY=dynamodb$<SEMICOLON>kinesis
        -DCMAKE_INSTALL_PREFIX=${CMAKE_BINARY_DIR}/Ext/Aws/CtcInstall
        -DENABLE_TESTING=OFF
)