亚马逊Libs3问题

时间:2011-07-19 04:37:10

标签: c++ amazon-s3

我正在尝试安装一个可用于访问Amazon S3服务的库(我只需要能够在那里上传文件)。代码需要使用C ++,因为它将作为我正在处理的应用程序的一部分捆绑在一起。

我正在尝试与位于此处的Bryan Ischo图书馆合作:http://libs3.ischo.com.s3.amazonaws.com/index.html

我遇到了一些安装问题。我将GNUMakefile.macosx更改为GNUMakefile然后运行“sudo make install”,因为我正在Mac上开发。然后我做了一个测试.cpp文件。

#include <libs3.h>
...a few other things...
int main() {
cout << "Hello World!" << endl;
S3_initialize(NULL, S3_INIT_ALL);   
return 0;
}

我想要做的就是能够初始化库,因为这是他的API所要做的。但是,我收回了这个错误:

Undefined symbols:
  "_S3_initialize", referenced from:
  _main in ccRcG0yS.o
ld: symbol(s) not found

我想帮助修复我的libs3安装或获取一些关于通过C ++访问S3的技巧。

谢谢!

2 个答案:

答案 0 :(得分:3)

您的测试应用程序未与libs3关联。您需要将它添加到链接器标志,例如-ls3(如果库是libs3.so/a)

答案 1 :(得分:0)

我在Mac上使用Byan Ischo的库执行C文件时遇到了类似的问题,在我能够成功运行测试文件之前,我必须添加更多参数。

如何在mac上编译libs3?

sudo make DESTDIR=/opt/local install

如何编译test.c?

cc test.c -I/opt/local/include -L/opt/local/lib -ls3

如何执行a.out?

DYLD_LIBRARY_PATH=/opt/local/lib ./a.out