赞
踩
基础架构系列篇-基于C++与CMAKE的跨平台编译
// CMakeProject1.h: 标准系统包含文件的包含文件
// 或项目特定的包含文件。
#pragma once
#include <iostream>
// TODO: 在此处引用程序需要的其他标头。
void test();
// CMakeProject1.h: 标准系统包含文件的包含文件 // 或项目特定的包含文件。 #pragma once #include <iostream> #include "test/Test.h" // TODO: 在此处引用程序需要的其他标头。 #include <aws/core/http/HttpRequest.h> #include <aws/s3/S3Client.h> #include <aws/s3/model/CreateBucketRequest.h> #include <aws/core/Aws.h> #include <aws/core/auth/AWSCredentialsProvider.h> #include <aws/s3/model/ListObjectsRequest.h> #include <aws/s3/model/Object.h> using namespace std; using namespace Aws::S3; using namespace Aws::S3::Model;
// CMakeProject1.cpp: 定义应用程序的入口点。 // #include "CMakeProject1.h" using namespace std; int main() { cout << "Hello CMake." << endl; test(); for (int k = 0; k < 5; k++) { cout << "Hello 测试." << endl; } system("pause"); return 0; } int main1(int argc, char* argv[]) { cout << "Hello CMake." << endl; test(); // 初始化 Aws::SDKOptions options; options.loggingOptions.logLevel = Aws::Utils::Logging::LogLevel::Debug; Aws::InitAPI(options); Aws::Client::ClientConfiguration cfg; cfg.endpointOverride = "127.0.0.1:9000"; cfg.scheme = Aws::Http::Scheme::HTTP; cfg.verifySSL = false; Aws::Auth::AWSCredentials cred("key", "secret"); S3Client client(cred, cfg, Aws::Client::AWSAuthV4Signer::PayloadSigningPolicy::Always, false); auto response = client.ListBuckets(); cout<< "response.IsSuccess()=" << response.IsSuccess() << endl; if (response.IsSuccess()) { auto buckets = response.GetResult().GetBuckets(); } else { cout << "Error while ListBuckets " << response.GetError().GetExceptionName() << " " << response.GetError().GetMessage() << endl; } Aws::ShutdownAPI(options); getchar(); return 0; }
# CMakeList.txt: CMakeProject1 的 CMake 项目,在此处包括源代码并定义 # 项目特定的逻辑。 # 常用的测试用 MESSAGE 打印 例 MESSAGE("项目: ${PROJECT_NAME}") MESSAGE("路径: ${CMAKE_BINARY_DIR}") cmake_minimum_required (VERSION 3.8) project ("main") MESSAGE("项目: ${PROJECT_NAME}") #设置可执行文件打包路径 set(CMAKE_RUNTIME_OUTPUT_DIRECTORY "../../../../../bin/${PROJECT_NAME}/") include_directories( ../../includes ) MESSAGE("路径CMAKE_BINARY_DIR=: ${CMAKE_BINARY_DIR}") MESSAGE("PROJECT_SOURCE_DIR=: ${PROJECT_SOURCE_DIR}") link_directories( ${PROJECT_SOURCE_DIR}/../../libs/test "${PROJECT_SOURCE_DIR}/../../libs/awst" ) # 将源代码添加到此项目的可执行文件。 add_executable (CMakeProject1 "CMakeProject1.cpp" "CMakeProject1.h" ) target_link_libraries(CMakeProject1 aws-cpp-sdk-core aws-cpp-sdk-s3 test) target_link_libraries(CMakeProject1 aws-cpp-sdk-core aws-cpp-sdk-s3) # TODO: 如有需要,请添加测试并安装目标。
// CMakeProject1.h: 标准系统包含文件的包含文件
// 或项目特定的包含文件。
#pragma once
#include <iostream>
// TODO: 在此处引用程序需要的其他标头。
void test();
// Test.cpp: 定义应用程序的入口点。
//
#include "Test.h"
using namespace std;
void test()
{
cout<< "测试静态库" << endl;
}
# CMakeList.txt: CMakeProject1 的 CMake 项目,在此处包括源代码并定义 # 项目特定的逻辑。 # cmake_minimum_required (VERSION 3.8) project ("test") MESSAGE("项目: ${PROJECT_NAME}") #设置静态库打包路径 MESSAGE("静态库路径: ${CMAKE_ARCHIVE_OUTPUT_DIRECTORY}") set(CMAKE_ARCHIVE_OUTPUT_DIRECTORY "../../../../../libs/${PROJECT_NAME}/") MESSAGE("修改静态库路径: ${CMAKE_ARCHIVE_OUTPUT_DIRECTORY}") # 将源代码添加到静态库 add_library (test STATIC Test.cpp Test.h) # 或 # 将源代码添加到静态库add_library (test Test.cpp Test.h) # TODO: 如有需要,请添加测试并安装目标。
# CMakeList.txt: CMakeProject1 的 CMake 项目,在此处包括源代码并定义 # 项目特定的逻辑。 # 常用的测试用 MESSAGE 打印 例 MESSAGE("项目: ${PROJECT_NAME}") MESSAGE("路径: ${CMAKE_BINARY_DIR}") cmake_minimum_required (VERSION 3.8) project ("src") MESSAGE("项目: ${PROJECT_NAME}") # TODO: 如有需要,请添加测试并安装目标。 add_subdirectory("main") add_subdirectory("test")
# CMakeList.txt: CMakeProject1 的 CMake 项目,在此处包括源代码并定义 # 项目特定的逻辑。 # 常用的测试用 MESSAGE 打印 例 MESSAGE("项目: ${PROJECT_NAME}") MESSAGE("路径: ${CMAKE_BINARY_DIR}") cmake_minimum_required (VERSION 3.8) project ("CMakeProject1") MESSAGE("项目: ${PROJECT_NAME}") # TODO: 如有需要,请添加测试并安装目标。 add_subdirectory("src") # 或 # add_subdirectory("src/main") # add_subdirectory("src/test")
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。