当前位置:   article > 正文

基础架构系列篇-基于C++与CMAKE的跨平台编译库加引用_ccs中workaround for cla signed integer comparison

ccs中workaround for cla signed integer comparison

基础架构系列篇-基于C++与CMAKE的跨平台编译

基本项目结构

在这里插入图片描述

-includes

----test

--------Test.h

// CMakeProject1.h: 标准系统包含文件的包含文件
// 或项目特定的包含文件。

#pragma once

#include <iostream>

// TODO: 在此处引用程序需要的其他标头。

void test();
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10

----aws

--------core

--------s3

-libs

----test

--------test.lib

----aws

--------aws-cpp-sdk-core.lib

--------aws-cpp-sdk-core.dll

--------aws-cpp-sdk-s3.lib

--------aws-cpp-sdk-s3.dll

-src

----main

--------CMakeProject1.h

// 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;
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19

--------CMakeProject1.cpp

// 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;
}
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22
  • 23
  • 24
  • 25
  • 26
  • 27
  • 28
  • 29
  • 30
  • 31
  • 32
  • 33
  • 34
  • 35
  • 36
  • 37
  • 38
  • 39
  • 40
  • 41
  • 42
  • 43
  • 44
  • 45
  • 46
  • 47
  • 48
  • 49
  • 50

--------CMakeLists.txt

# 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: 如有需要,请添加测试并安装目标。
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22
  • 23
  • 24
  • 25
  • 26
  • 27
  • 28
  • 29
  • 30
  • 31
  • 32
  • 33
  • 34

----test

--------Test.h

// CMakeProject1.h: 标准系统包含文件的包含文件
// 或项目特定的包含文件。

#pragma once

#include <iostream>

// TODO: 在此处引用程序需要的其他标头。

void test();
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10

--------Test.cpp

// Test.cpp: 定义应用程序的入口点。
//

#include "Test.h"

using namespace std;

void test()
{
    cout<< "测试静态库" << endl;
}
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11

--------CMakeLists.txt

# 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: 如有需要,请添加测试并安装目标。
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22

----CMakeList.txt

# 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")
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16

-CMakeList.txt

# 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")
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/笔触狂放9/article/detail/662778
推荐阅读
相关标签
  

闽ICP备14008679号