Подключение библиотеки в Eclipse
Скомпилировал и установил архивы библиотеки в директорию /usr/local/lib/ . Вывод после sudo make install :
Install the project. -- Install configuration: "" -- Installing: /usr/local/lib/libcollectc.so -- Installing: /usr/local/lib/libcollectc.a
Но не могу понять как правильно теперь к архиву добраться с Eclipse. Пробовал указывать Lib path в properties но результата нет.
Отслеживать
задан 19 дек 2018 в 20:31
1,360 1 1 золотой знак 9 9 серебряных знаков 21 21 бронзовый знак
-L/usr/local/lib и -lcollect , там же вроде gcc или clang? вот в опциях и добавьте.
20 дек 2018 в 2:46
ну может код приведете чтобы хотя бы посмотреть какие проперти вы там добавили?
20 дек 2018 в 15:57
@AndrejLevkovitch, пробовал ‘-lcollect’ но безрезультатно. Архивы лежат на месте, все проверил.
20 дек 2018 в 16:15
@UjinUkr -lcollectc , во-первых, во-вторых, «без результатно» не бывает — всегда есть какие-то ошибки. в-третьих, с эклипсом не работал, но свойство должно называться link flags , link libraries или ещё как-то так, а Lib path скорей всего предназначен для -L -флагов.
20 дек 2018 в 17:34
@Fat-Zer, сделал по другому, указал путь в директорию через проводник, но include все ровно файлы не видит.
Настройка проекта C++ в Eclipse на примере приложения SFML
Eclipse CDT — интегрированная среда разработки С и C++ на базе платформы Eclipse.
MinGW — компилятор, нативный программный порт GNU Compiler Collection (GCC) под Microsoft Windows, вместе с набором свободно распространяемых библиотек импорта и заголовочных файлов для Windows API. MinGW позволяет разработчикам создавать нативные приложения Microsoft Windows.
SFML — свободная кроссплатформенная мультимедийная библиотека, написана на C++.
Установка Eclipse и MinGW
Для работы Eclipse требуется Java .
Скачиваем Eclipse CDT с официального сайта и распаковываем в любое удобное место, например C:\eclipse . Запускаем eclipse.exe , если все заработало, прекрасно.
Далее качаем установщик MinGW . Запускаем его. Видим окно с описанием, нажимаем Install . Если нужно меняем место установки и нажимаем Continue .
Отмечаем для установки mingw-32-base и mingw-gcc-g++.
После этого нажимаем Installation -> Apply Changes. На открывшемся окне жмем Apply и ждем пока загрузятся и установятся компоненты. Когда установка закончена, качаем msys . Думаю при установке сложностей не возникнет. Теперь нужно добавить в системную переменную Path путь к папке bin MinGW, и к папке bin msys.
У меня получилось так: d:\MinGW\bin\;d:\msys\1.0\bin\
Качаем SFML MinGW , и распаковываем куда угодно.
На этом подготовка окончена.
Создание и настройка проекта C++
Запускаем Eclipse, нажимаем File -> New -> C++ Project. Создаем проект Hello World и выбираем MinGW как на картинке.

Далее ПКМ на созданном проекте -> Properties, открываем C/C++ Build -> Settings -> Tool Setting -> GCC C++ Compiler -> Includes.
1. Нажимаем Add.
2. Выбираем папку includes из директории, куда мы распаковали SFML.

После этого переходим на пункт Preprocessor и в Defined Symbols добавляем SFML_DYNAMIC.
Вот мы подошли к моменту где я получил первую ошибку. Если подключить библиотеку с расширением .a через MinGW C++ Linker -> Libraries, ничего работать не будет. Эти библиотеки нужно подключать через MinGW C++ Linker -> Miscellaneous как Other Object. Указываем путь к библиотекам SFML, нужно подключить libsfml-graphics.a, libsfml-window.a, libsfml-main.a
Построение проекта
Заменяем весь код в автоматически созданном .cpp на этот:
#include "SFML/Graphics.hpp" int main() < sf::RenderWindow window(sf::VideoMode(640, 480), "Test"); while(window.isOpen())< sf::Event event; while(window.pollEvent(event))< if(event.type == sf::Event::Closed) < window.close(); >window.clear(); window.display(); > > return 0; >

Нажимаем Build
Все соберется успешно но работать не будет, так как отсутствуют dll. Копируем все из папки bin в директории SFML в папку Debug нашего проекта.
Теперь жмем ПКМ на .exe файле, который расположен в папке Debug нашего проекта, выбираем Run As -> Run Configurations, жмем C/C++ Application и нажимаем New launch configuration, после этого нажимаем Run ничего не меняя.

После этого запускать проект можно с помощью Ctrl + F11 или соответствующей иконкой на тулбаре.
Видим окно с черным фоном, все работает.
P.S. Написал статью давно, и забыл о ней =) Что то могло устареть.
справочная копия, ссылки источника в заголовке статьи
Подключение библиотек в Java

Библиотека — готовый набор классов и компонентов, который встраивают в программу, чтобы реализовать некий функционал. Например, в тысячах казуальных игр музыку можно проигрывать одним и тем же способом. Чтобы не тратить время на работу со звуком, программисту достаточно подключить подходящую библиотеку.
Подключение Джава-библиотек в Eclipse
Если вы пользуетесь средой разработки Eclipse, подключение библиотек в Java займёт у вас меньше минуты:
- Разворачиваем дерево проекта в Package Explorer и находим папку libs. Если её нет — создаем.
- Кладем нужный .jar в libs.
- В появившемся окне выбираем «копирование файлов» (copy files) и жмём OK.
- Обновляем проект: правый клик — «Refresh».
Классы подключены и готовы к вызову из нашей программы.
Подключение библиотек Java в Maven и Apache-Ant
Минус подключения библиотек через IDE в том, что для пересборки проекта на другой машине нужна та же среда. Чтобы не зависеть от среды, используют системы сборки Maven и Ant.
Чтобы «прикрутить» библиотеку к проекту Maven, нужно указать её среди зависимостей в файле pom.xml. С библиотекой может подтянуться еще несколько зависимостей, которые подключаются к этой библиотеке. В случае с jar этого не происходит.
Как будет выглядеть наш pom.xml:
xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd"> 4.0.0 ru.team.project test-app 1.0 dependency> Допустим, нам нужна Javassist для редактирования байткода. ----> org.javassist javassist 3.21.0-GA
Теперь при компиляции проекта библиотека войдет в конечный .jar-файл.
В Ant принцип схожий, но редактировать нужно файл build.xml. Путь к подключаемым библиотекам пишут с помощью тегов и . Сначала объясняем, где искать библиотеку:
"lib.dir" value="lib"/> />
И далее передаём этот адрес тегу :
”my.classpath”/>
Как подключить Java-библиотеку вручную
Ваша IDE умеет подключать библиотеки, но как она это делает? Давайте посмотрим, что происходит на уровне файлов. Если библиотека написана на Джаве, её компоненты хранятся либо в архиве .jar, либо в исходниках .java. Более сложный вариант с интеграцией библиотек на C++ пока рассматривать не будем.
Подключение jar-библиотек в Java
Если на компьютере только одна версия Джавы — всё просто. Чтобы подключить .jar, достаточно положить его в папку lib директории Java на жестком диске. Виртуальная машина при ближайшем запуске сама возьмет код из библиотеки.
Когда вы используете одновременно несколько версий Java-машины, раскладывать файлы библиотек для каждой из них утомительно. Лучше указать путь к нужным классам с помощью ключа -classpath.
Открываем терминал и пишем:
java -classpath ./classes ru.аuthor.libname.Main
ru.аuthor.libname.Main — наша библиотека
Точкой перед «/» отмечают текущую директорию.
Можно перечислить несколько библиотек, код из которых компилятор соберет в порядке их перечисления:
java -classpath ./classes;./lib/l1-0.1.jar;./lib/l2-1.5.jar ru. аuthor.libname.Main
Теперь вы умеете подключать библиотеки даже в нестандартной ситуации: когда не установлена IDE или нужно скорректировать очередность подключения.
Как подключать библиотеки вручную?
Использую Eclipse. С помощью maven мне достаточно просто прописать в pom.xml нужную зависимость и всё. А что если у меня есть jar файл, который я хочу подключить к проекту, как его подключить?
Что я сделал (на примере telegrambots — maven):
1. Скачал jar последней версии.
2. В Preferences >> User Libraries создал новую библиотеку «Telegram» и добавил в неё скачанный jar последней версии.
3. В Build Path >> Configure Build Path проекта добавил Add Library >> User Library >> Telegram.
4. Дальше я просто пишу инициализацию бота и eclipse не находит нужных классов, даже если прописать импорт вручную:
import org.telegram.telegrambots.bots.TelegramLongPollingBot; import org.telegram.telegrambots.meta.TelegramBotsApi; import org.telegram.telegrambots.meta.exceptions.TelegramApiException; import org.telegram.telegrambots.updatesreceivers.DefaultBotSession; public class Bot extends TelegramLongPollingBot < public static void main(String[] args) < try < new TelegramBotsApi(DefaultBotSession.class).registerBot(new Bot()); >catch (TelegramApiException e) < e.printStackTrace(); >> >
А с maven это работало.
- Вопрос задан более двух лет назад
- 577 просмотров
3 комментария
Простой 3 комментария
