3

コンピューターでFADEを使いたい。そのため、AmazonWebServicesとの通信を可能にするC++ライブラリであるlibaws++を使用する必要があります。

OK、これが私の問題です:

libaws++のウェブサイトは利用できません。私はグーグルを使って「libaws++」を検索しましたが、libawsしか見つかりませんでした。libawsがlibaws++かどうかわかりませんでした。どちらもアマゾンウェブサービスとの通信に使用されていました。だから私はsourceforgeからlibawsをダウンロードします。

これが私がlibawsをインストールするプロセスです:

  1. tarlibaws-0.9.2.tar.gz
  2. cdlibaws-0.9.2
  3. cp〜/ libaws_patch_for_fade.patch libaws_patch_for_fade.patch(libaws-0.9.2へのパッチのcp)
  4. パッチ-p2-ilibaws_patch_for_fade.patch
  5. mkdir libawsbuild
  6. cd libawsbuild
  7. cmake..
  8. 作る

そしてエラーの発生:

    [ 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で検索しましたが、有用な情報が得られませんでした。

4

2 に答える 2

1

#include <stdint.h>それらのヘッダーファイルの先頭に追加します。

uint64_tは標準タイプであり、正常に機能するはずです。

(もちろん、64ビット整数をサポートしていない奇妙なプラットフォームを使用している場合を除きます...)

于 2012-12-13T14:11:12.483 に答える
1

これをgnuコンパイラ4.9.xでコンパイルしました。新しいバージョンのコンパイラでは、libawsをコンパイルするために必要な手順が増えます。

これが私がしなければならなかったことです:

1)他のすべてのインクルードステートメントの後に、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++構文がコンパイラーエラーをスローしないようにする必要があります。

この行をCMakeCompiler.txtに追加し、他のすべてのCMAKE_CXX_FLAGSコマンドの後、82行目(空白行である必要があります)の周りに追加します。

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を見つけるために、config.hをlibawsbuild/includeからlibaws-0.9.2/include/libawsにコピーする必要がある場合もあります。 '実際にlibawsを使用するように書いています。(それは私の個人的なmakefileが構成された方法であったかもしれませんが。それについて私を引用しないでください。)

于 2014-12-18T17:08:45.093 に答える