Форум программистов, компьютерный форум CyberForum.ru

Как в проект подключить библиотеку? - C++

Войти
Регистрация
Восстановить пароль
 
 
Vadim4ik123
1 / 1 / 0
Регистрация: 27.02.2015
Сообщений: 77
09.09.2015, 21:05     Как в проект подключить библиотеку? #1
Есть компилятор GCC и графическая библиотека, как ее можно подключить?
Компилю через консоль.
Лучшие ответы (1)
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Kerry_Jr
Модератор
 Аватар для Kerry_Jr
1945 / 1741 / 610
Регистрация: 14.05.2014
Сообщений: 5,047
Записей в блоге: 1
Завершенные тесты: 5
09.09.2015, 21:08     Как в проект подключить библиотеку? #2
Vadim4ik123,ключи -Lпуть_к_библиотеке -lимя_библиотеки + нужные хедеры в файле
Vadim4ik123
1 / 1 / 0
Регистрация: 27.02.2015
Сообщений: 77
09.09.2015, 21:12  [ТС]     Как в проект подключить библиотеку? #3
Kerry_Jr, Это нужно библиотеку прогонять через cmake?
Kerry_Jr
Модератор
 Аватар для Kerry_Jr
1945 / 1741 / 610
Регистрация: 14.05.2014
Сообщений: 5,047
Записей в блоге: 1
Завершенные тесты: 5
09.09.2015, 21:13     Как в проект подключить библиотеку? #4
Vadim4ik123, так, начнем сначала, какая библиотека?
Vadim4ik123
1 / 1 / 0
Регистрация: 27.02.2015
Сообщений: 77
09.09.2015, 21:14  [ТС]     Как в проект подключить библиотеку? #5
Kerry_Jr, SFML
Kerry_Jr
Модератор
 Аватар для Kerry_Jr
1945 / 1741 / 610
Регистрация: 14.05.2014
Сообщений: 5,047
Записей в блоге: 1
Завершенные тесты: 5
09.09.2015, 21:14     Как в проект подключить библиотеку? #6
Цитата Сообщение от Kerry_Jr Посмотреть сообщение
ключи -Lпуть_к_библиотеке -lимя_библиотеки + нужные хедеры в файле
это ключи компилятора

Добавлено через 25 секунд
Цитата Сообщение от Vadim4ik123 Посмотреть сообщение
SFML
Исходники или уже собранная?
Vadim4ik123
1 / 1 / 0
Регистрация: 27.02.2015
Сообщений: 77
09.09.2015, 21:15  [ТС]     Как в проект подключить библиотеку? #7
Kerry_Jr, Можно и исходники скачать и собранную
Kerry_Jr
Модератор
 Аватар для Kerry_Jr
1945 / 1741 / 610
Регистрация: 14.05.2014
Сообщений: 5,047
Записей в блоге: 1
Завершенные тесты: 5
09.09.2015, 21:16     Как в проект подключить библиотеку? #8
Vadim4ik123, у Вас какая? Я то знаю, что можно и так и так, сталкивался.
Vadim4ik123
1 / 1 / 0
Регистрация: 27.02.2015
Сообщений: 77
09.09.2015, 21:17  [ТС]     Как в проект подключить библиотеку? #9
Kerry_Jr, Собранная, но если удобнее исходником, то без проблем скачаю.
Kerry_Jr
Модератор
 Аватар для Kerry_Jr
1945 / 1741 / 610
Регистрация: 14.05.2014
Сообщений: 5,047
Записей в блоге: 1
Завершенные тесты: 5
09.09.2015, 21:27     Как в проект подключить библиотеку? #10
Vadim4ik123, собранная для Вашей версии GCC/MinGW? Если да то, как я уже писал, в строку компиляции добавить ключи,которые я выше описал + насколько я знаю, там есть какие-то проблемы со статической линковкой (по крайней мере все мои попытки завершились неудачами), поэтому добавляете еще ключ -D SFML_DYNAMIC, либо в начале файла, в котором используете библиотеку, прописываете #define SFML_DYNAMIC + в папку с exe-шником кладете дллки.

Добавлено через 3 минуты
да, я там не все ключи прописал нужен еще -Iпуть_к_папке_include
Vadim4ik123
1 / 1 / 0
Регистрация: 27.02.2015
Сообщений: 77
09.09.2015, 21:35  [ТС]     Как в проект подключить библиотеку? #11
Kerry_Jr, А можно по подробнее с ключами?Я немного не понимаю как и что.

Добавлено через 5 минут
Kerry_Jr, О, понял, а как указать несколько lib?
Kerry_Jr
Модератор
 Аватар для Kerry_Jr
1945 / 1741 / 610
Регистрация: 14.05.2014
Сообщений: 5,047
Записей в блоге: 1
Завершенные тесты: 5
09.09.2015, 21:39     Как в проект подключить библиотеку? #12
Vadim4ik123, ну, например, папка с библиотекой у Вас лежит по пути C:\SFML. Создадим простой файлик типа
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
#include <SFML/Window.hpp>
#include <SFML/Graphics.hpp>
 
constexpr int windowWidth {800}, windowLength {600};
 
int main()
{
    sf::RenderWindow window({windowWidth, windowLength}, "Test");
    
    while(window.isOpen())
    {
        sf::Event event;
        window.clear(sf::Color::White);
        while(window.pollEvent(event))
            if (event.type == sf::Event::Closed ||
                sf::Keyboard::isKeyPressed(sf::Keyboard::Escape))
                window.close();
            
        window.display();
    }
    
    return 0;
}
тогда строка компиляции будет выглядеть примерно так
Код
$>g++ -D SFML_DYNAMIC -o test test.cpp -IC:\SFML\include -LC:\SFML\lib -lsfml-graphics -lsfml-window -lsfml-system
Vadim4ik123
1 / 1 / 0
Регистрация: 27.02.2015
Сообщений: 77
09.09.2015, 21:54  [ТС]     Как в проект подключить библиотеку? #13
Kerry_Jr, Почти получилось(
Кучу ошибок дало.
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
C:\TEMP\ccZK5j6W.o:main.cpp:(.text+0xe5): undefined reference to `_imp___ZN2sf6S
tringC1EPKcRKSt6locale'
C:\TEMP\ccZK5j6W.o:main.cpp:(.text+0x10b): undefined reference to `_imp___ZN2sf9
VideoModeC1Ejjj'
C:\TEMP\ccZK5j6W.o:main.cpp:(.text+0x147): undefined reference to `_imp___ZN2sf1
2RenderWindowC1ENS_9VideoModeERKNS_6StringEjRKNS_15ContextSettingsE'
C:\TEMP\ccZK5j6W.o:main.cpp:(.text+0x17d): undefined reference to `_imp___ZN2sf1
1CircleShapeC1Efj'
C:\TEMP\ccZK5j6W.o:main.cpp:(.text+0x18e): undefined reference to `_imp___ZN2sf5
Color5GreenE'
C:\TEMP\ccZK5j6W.o:main.cpp:(.text+0x198): undefined reference to `_imp___ZN2sf5
Shape12setFillColorERKNS_5ColorE'
C:\TEMP\ccZK5j6W.o:main.cpp:(.text+0x1b8): undefined reference to `_imp___ZN2sf6
Window5closeEv'
C:\TEMP\ccZK5j6W.o:main.cpp:(.text+0x1cd): undefined reference to `_imp___ZN2sf6
Window9pollEventERNS_5EventE'
C:\TEMP\ccZK5j6W.o:main.cpp:(.text+0x1ff): undefined reference to `_imp___ZN2sf5
ColorC1Ehhhh'
C:\TEMP\ccZK5j6W.o:main.cpp:(.text+0x21a): undefined reference to `_imp___ZN2sf1
2RenderTarget5clearERKNS_5ColorE'
C:\TEMP\ccZK5j6W.o:main.cpp:(.text+0x22d): undefined reference to `_imp___ZN2sf1
2RenderStates7DefaultE'
C:\TEMP\ccZK5j6W.o:main.cpp:(.text+0x241): undefined reference to `_imp___ZN2sf1
2RenderTarget4drawERKNS_8DrawableERKNS_12RenderStatesE'
C:\TEMP\ccZK5j6W.o:main.cpp:(.text+0x253): undefined reference to `_imp___ZN2sf6
Window7displayEv'
C:\TEMP\ccZK5j6W.o:main.cpp:(.text+0x262): undefined reference to `_imp___ZNK2sf
6Window6isOpenEv'
C:\TEMP\ccZK5j6W.o:main.cpp:(.text+0x28b): undefined reference to `_imp___ZN2sf1
2RenderWindowD1Ev'
C:\TEMP\ccZK5j6W.o:main.cpp:(.text+0x2b2): undefined reference to `_imp___ZN2sf1
2RenderWindowD1Ev'
C:\TEMP\ccZK5j6W.o:main.cpp:(.text+0x2ec): undefined reference to `_imp___ZN2sf1
2RenderWindowD1Ev'
d:/program files/mingw/bin/../lib/gcc/mingw32/4.8.1/../../../../mingw32/bin/ld.e
xe: C:\TEMP\ccZK5j6W.o: bad reloc address 0xf in section `.text$_ZN2sf6StringD1E
v[__ZN2sf6StringD1Ev]'
d:/program files/mingw/bin/../lib/gcc/mingw32/4.8.1/../../../../mingw32/bin/ld.e
xe: final link failed: Invalid operation
collect2.exe: error: ld returned 1 exit status
Для продолжения нажмите любую клавишу . . .
Kerry_Jr
Модератор
 Аватар для Kerry_Jr
1945 / 1741 / 610
Регистрация: 14.05.2014
Сообщений: 5,047
Записей в блоге: 1
Завершенные тесты: 5
09.09.2015, 22:06     Как в проект подключить библиотеку? #14
Vadim4ik123
Цитата Сообщение от Vadim4ik123 Посмотреть сообщение
Кучу ошибок дало.
честно, сейчас не вспомню, но, кажется, я эту проблему у себя решил скачиванием исходников и компиляцией библиотеки своим компилятором.
Vadim4ik123
1 / 1 / 0
Регистрация: 27.02.2015
Сообщений: 77
09.09.2015, 22:08  [ТС]     Как в проект подключить библиотеку? #15
Kerry_Jr, Своим компилятором?То есть можно написать самому свой компилятор?)
А насчет исходников, может если с ними скомпилировать, то все заработает?
Kerry_Jr
Модератор
 Аватар для Kerry_Jr
1945 / 1741 / 610
Регистрация: 14.05.2014
Сообщений: 5,047
Записей в блоге: 1
Завершенные тесты: 5
09.09.2015, 22:44     Как в проект подключить библиотеку? #16
Цитата Сообщение от Vadim4ik123 Посмотреть сообщение
Своим компилятором?
под своим понимается установленный у меня.
Цитата Сообщение от Vadim4ik123 Посмотреть сообщение
А насчет исходников, может если с ними скомпилировать, то все заработает?
Что значит "с ними"? Сначала из исходников нужно скомпилировать библиотеку, а потом подключать ее так же, как описано выше.
Croessmah
Модератор
Эксперт С++
 Аватар для Croessmah
12286 / 6973 / 784
Регистрация: 27.09.2012
Сообщений: 17,286
Записей в блоге: 2
Завершенные тесты: 1
09.09.2015, 23:03     Как в проект подключить библиотеку? #17
Сообщение было отмечено автором темы, экспертом или модератором как ответ
Небольшая инструкция (сборка dll sfml): https://www.youtube.com/watch?v=eRyy8QLOuoA
Vadim4ik123
1 / 1 / 0
Регистрация: 27.02.2015
Сообщений: 77
10.09.2015, 18:10  [ТС]     Как в проект подключить библиотеку? #18
Croessmah, Огромное спасибо!)
То что надо, скоро проверю, отпишусь.

Добавлено через 1 час 44 минуты
Croessmah, все сделал, пишу команду make, жму ентер и пишет:
Microsoft Windows [Version 6.1.7601]
(c) Корпорация Майкрософт, 2009. Все права защищены.
Croessmah
Модератор
Эксперт С++
 Аватар для Croessmah
12286 / 6973 / 784
Регистрация: 27.09.2012
Сообщений: 17,286
Записей в блоге: 2
Завершенные тесты: 1
10.09.2015, 18:23     Как в проект подключить библиотеку? #19
Vadim4ik123, MinGW установлен? Путь к бинарникам компилятора прописан в переменную PATH? Загляните в бинарники, возможно, вместо make там mingw32-make
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
10.09.2015, 18:40     Как в проект подключить библиотеку?
Еще ссылки по теме:

Visual C++ Как подключить библиотеку в Visual c++
Как подключить библиотеку в Qt C++
C++ Builder Как подключить к Embarcadero библиотеку?
Как подключить библиотеку C++
Как подключить библиотеку GCC C++

Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
Vadim4ik123
1 / 1 / 0
Регистрация: 27.02.2015
Сообщений: 77
10.09.2015, 18:40  [ТС]     Как в проект подключить библиотеку? #20
Croessmah, Разобрался!)
Заработало, огромное тебе спасибо!!)
Yandex
Объявления
10.09.2015, 18:40     Как в проект подключить библиотеку?
Ответ Создать тему
Опции темы

Текущее время: 09:58. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru