我想在我的计算机上使用FADE。所以,我必须使用libaws ++,这是一个允许与Amazon Web Services通信的C ++库。
好的,这是我的问题:
libaws ++的website不可用。我用谷歌搜索“libaws ++”,只发现了libaws。我不知道libaws是否是libaws ++。他们都曾经与Amazon Web Services进行通信。所以我从sourceforge下载了libaws。
以下是我安装libaws的过程:
错误发生:
[ 28%] Building CXX object src/CMakeFiles/aws.dir/api/connectionpool.cpp.o
In file included from /home/lx/Nutstore/cloud/libaws-0.9.2/include/libaws/aws.h: 26:0,
from /home/lx/Nutstore/cloud/libaws-0.9.2/include/libaws/connec tionpool.h:22,
from /home/lx/Nutstore/cloud/libaws-0.9.2/src/api/connectionpoo l.cpp:16:
/home/lx/Nutstore/cloud/libaws-0.9.2/include/libaws/sqsresponse.h:124:9: error: a€?uint64_ta€? does not name a type
In file included from /home/lx/Nutstore/cloud/libaws-0.9.2/include/libaws/aws.h: 29:0,
from /home/lx/Nutstore/cloud/libaws-0.9.2/include/libaws/connec tionpool.h:22,
from /home/lx/Nutstore/cloud/libaws-0.9.2/src/api/connectionpoo
/home/lx/Nutstore/cloud/libaws-0.9.2/include/libaws/sqsresponse.h:124:9: error: a€?uint64_ta€? does not name a type
In file included from /home/lx/Nutstore/cloud/libaws-0.9.2/include/libaws/aws.h: 29:0,
from /home/lx/Nutstore/cloud/libaws-0.9.2/include/libaws/connec tionpool.h:22,
from /home/lx/Nutstore/cloud/libaws-0.9.2/src/api/connectionpoo l.cpp:16:
/home/lx/Nutstore/cloud/libaws-0.9.2/include/libaws/sdbresponse.h:105:20: warning: type qualifiers ignored on function return type [-Wignored-qualifiers]
.....
make[2]: *** [src/CMakeFiles/aws.dir/api/connectionpool.cpp.o] Error 1
make[1]: *** [src/CMakeFiles/aws.dir/all] Error 2
make: *** [all] Error 2
我搜索了Google和stackoverflow,但没有得到任何有用的信息。
答案 0 :(得分:1)
将#include <stdint.h>
添加到这些头文件的顶部。
uint64_t是标准类型,应该可以正常工作。
(除非你在一些不支持64位整数的奇怪平台上......)
答案 1 :(得分:1)
刚刚用gnu编译器4.9.x编译了这个。对于较新版本的编译器,编译libaw需要更多步骤。
这是我必须做的事情:
1)在所有其他include语句之后,将以下行添加到libaws-0.9.2 / include / libaws / * .h中的头文件中:
#include <stdint.h>
2)在所有其他include语句之后,将以下行添加到libaws-0.9.2 / include / libaws / aws.h:
#include <getopt.h>
3)如果您使用的是最新版本的Gnu C ++编译器,则需要修改CMAKE文件以向编译器添加一些标志,以便libaws中使用的旧C ++语法不会#39; t抛出编译器错误。
在第82行(应该是一个空行)的所有其他CMAKE_CXX_FLAGS命令之后,将此行添加到CMakeCompiler.txt:
SET(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -fpermissive -Wignored-qualifiers")
仅供参考:如果您正在使用Gnu C编译器,则在其他CMAKE命令的末尾可能需要与C部分类似的行。文件末尾的这样的东西可能会起作用,但我还没有尝试过:
SET(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -fpermissive -Wignored-qualifiers")
完成后,这里是编译的步骤:
cd libaws-0.9.2
mkdir libawsbuild
cd libawsbuild
cmake ..
make
如果成功,您还可能需要将config.h从libawsbuild / include复制到libaws-0.9.2 / include / libaws,以便编译器在编译时找到它所需的位置,当您编译时无论你编写什么代码来实际使用libaws。 (虽然这可能只是我个人makefile的配置方式。不要引用我的话。)