aws-sdk-cpp: неразрешенные символы

Я пытаюсь построить простой пример, используя aws sdk cpp. Но я наткнулся на шаг строительства. Я ссылаюсь на библиотеку libaws-cpp-sdk-s3.so, которая должна содержать все символы из исходного файла. Но компоновщик не может даже найти пару из них. Исходный файл:

#include <aws/core/Aws.h>
int main( int argc, char ** argv)
{
Aws::SDKOptions options;
Aws::InitAPI(options);

{
// make your SDK calls here.
}

Aws::ShutdownAPI(options);
return 0;
}

используя этот Makefile:

CC = g++
CFLAGS = -g -c -Wall -std=c++11
LDFLAGS = -g
EXECUTABLE = ex1
RM = rm -f

SOURCES = main.cpp
OBJS = $(SOURCES:.cpp=.o)

all: $(EXECUTABLE)

$(EXECUTABLE): main.o -laws-cpp-sdk-s3
$(CC) $(LDFLAGS) main.o -o $@

main.o: main.cpp
$(CC) $(CFLAGS) $^ -o $@

.PHONY: clean
clean:
$(RM) $(EXECUTABLE) $(OBJS) $(SOURCES:.cpp=.d)

Когда я запускаю make, я получаю эту ошибку. Но почему? я построил

g ++ -g main.o -o ex1
main.o: в функции main':
/home/username/workspace/ex1/src/main.cpp:6: undefined reference to
Aws :: InitAPI (Aws :: SDKOptions const&)»
/home/username/workspace/ex1/src/main.cpp:12: неопределенная ссылка на `Aws :: ShutdownAPI (Aws :: SDKOptions const&)»
collect2: error: ld вернул 1 состояние выхода
Makefile: 13: рецепт для цели ‘ex1’ не удался
make: *** [ex1] Ошибка 1

0

Решение

Я не вижу, где вы ссылаетесь libaws-cpp-sdk-core

Вам, вероятно, нужно:

$(EXECUTABLE): main.o -laws-cpp-sdk-s3 -laws-cpp-sdk-core
$(CC) $(LDFLAGS) main.o -o $@
2

Другие решения

Других решений пока нет …