Как использовать мою собственную написанную библиотеку на C ++ в eclipse (linux)? - PullRequest
0 голосов
/ 05 марта 2011

Эй, ребята, у меня проблема, я хочу использовать свою собственную библиотеку в другой программе на C ++. Я опишу, что я делаю, а затем хочу знать, что не так.

Сначала я создаю новый проект C ++ в виде статической библиотеки с именем «a». После этого я создаю новый класс под названием «aClass» со следующим статическим методом:

static int addTwo(int num);

Теперь я создаю программу, которая должна использовать созданную библиотеку. Я создаю новый проект C ++ под названием "b" как проект hello world. Теперь я перехожу к параметрам этого проекта и изменяю следующее:

  • Добавьте путь включения проекта "a" в проект "b", чтобы eclipse увидела файл aClass.h
  • Я добавляю рабочую область проекта "a" в библиотеки компоновщика
  • Я добавляю "a" к библиотекам

Затем я изменяю свой код основного файла в проекте «b», добавляю заголовочный файл «a» и пишу небольшую строку кода, которая должна использовать функцию «a»:

int i = aClass::addTwo(1);

При компиляции с помощью eclipse я получаю следующую ошибку:

Building target: b
Invoking: GCC C++ Linker
g++ -L"/home/barti/workspace/a" -o"b"  ./src/b.o   -la
/usr/bin/ld: cannot find -la
collect2: ld returned 1 exit status
make: *** [b] Fehler 1

Что мне делать?

Ответы [ 2 ]

0 голосов
/ 05 марта 2011

Файл liba.a действительно присутствует в /home/barti/workspace/a? Я не знаком с разработкой C ++ с использованием Eclipse, но GCC, похоже, не находит его в этом каталоге (который предположительно был добавлен в путь ссылки Eclipse).

0 голосов
/ 05 марта 2011

Как называется ваш файл lib?

Это liba.so?

Иногда сборка библиотеки с расширением ".a" или "so.1" может вызвать проблемы.

Попробуйте сделать следующее

ln -s <current name> liba.so
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...