![]() |
|
Модераторы: Daevaorn |
![]()
|
|
| kometa_75 |
|
|||
|
Шустрый ![]() Профиль Группа: Участник Сообщений: 62 Регистрация: 24.10.2007 Репутация: нет Всего: нет |
Собственно вопрос по сабжу. KDevelop работает на Linux, STLport собран и установлен. Не так давно работаю с этой IDE, доселе внешние либы не подключал. Буду благодарен за подробное описание этой манипуляции.
З.Ы. Просьба не пинать, на офсайте был, доку читал, нужного не нашёл. |
|||
|
||||
| bsa |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 9185 Регистрация: 6.4.2006 Где: Москва, Россия Репутация: 63 Всего: 196 |
щелкаешь правой кнопкой по цели, выбираешь параметры, заходишь в закладку "Библиотеки" и в разделе "компоновать библиотеки вне проекта (LDADD)" жмешь добавить. В поле ввода пишешь -l<libname> (например: -lm подключит библиотечный файл libm.so).
|
|||
|
||||
| kometa_75 |
|
|||
|
Шустрый ![]() Профиль Группа: Участник Сообщений: 62 Регистрация: 24.10.2007 Репутация: нет Всего: нет |
У меня ругается на хидеры, хотя указал их явно. Однако вложенные включения не видит. |
|||
|
||||
| bsa |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 9185 Регистрация: 6.4.2006 Где: Москва, Россия Репутация: 63 Всего: 196 |
в KDevelop жмешь правой кнопкой на папке, где лежит проект, выбираешь параметры, "включаемые файлы" и жмешь "добавить", затем вводишь -I/path/to/headers-root-dir (например: -I/usr/include/STLport)
|
|||
|
||||
| kometa_75 |
|
|||
|
Шустрый ![]() Профиль Группа: Участник Сообщений: 62 Регистрация: 24.10.2007 Репутация: нет Всего: нет |
У меня KDevelop 3.5.7. выбрать параметры не получается, такого пункта просто нет. Может я неправильно что-то делаю... Вобщем, я собрал тестовое приложение "Hello, world". В нём подключил #include <stlport/iostream>. Во вкладке Проект/Параметры проекта/поддержка С++/custom include path я записал -I/usr/local/include/stlport. Получаю ошибки типа /usr/local/include/stlport/iostream:24:27: error: stl/_prolog.h: Нет такого файла или каталога. Хотя эта папка и файлы есть. Кстати, этот инклуд находится в stlport/iostream. |
|||
|
||||
| kometa_75 |
|
|||
|
Шустрый ![]() Профиль Группа: Участник Сообщений: 62 Регистрация: 24.10.2007 Репутация: нет Всего: нет |
Нашёл где правильно добавлять путь к заголовочным файлам. Однако всё равно получаю ошибки:
/usr/local/include/stlport/iostream:24:27: error: stl/_prolog.h: Нет такого файла или каталога /usr/local/include/stlport/iostream:31:25: error: stl/_ioserr.h: Нет такого файла или каталога /usr/local/include/stlport/iostream:38:25: error: stl/_iosfwd.h: Нет такого файла или каталога /usr/local/include/stlport/iostream:39:26: error: stl/_istream.h: Нет такого файла или каталога /usr/local/include/stlport/iostream:84:27: error: stl/_epilog.h: Нет такого файла или каталога Код приложения: #ifdef HAVE_CONFIG_H #include <config.h> #endif #include <stlport/iostream> #include <cstdlib> using namespace std; int main(int argc, char *argv[]) { cout << "Hello, world!" << endl; return EXIT_SUCCESS; } |
|||
|
||||
| bsa |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 9185 Регистрация: 6.4.2006 Где: Москва, Россия Репутация: 63 Всего: 196 |
В KDevelop справа, когда открыт Automake Manager, есть два окошка. В верхнем перечислены подроекты. Обычно, самый верхний - src. Вот на нем, жмешь правой кнопкой и выбираешь параметры. |
|||
|
||||
| kometa_75 |
|
||||
|
Шустрый ![]() Профиль Группа: Участник Сообщений: 62 Регистрация: 24.10.2007 Репутация: нет Всего: нет |
Нашёл, сделал... Получил ошибки, см. предыдущий мой пост. Путь указал так: -I/usr/local/include |
||||
|
|||||
| bsa |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 9185 Регистрация: 6.4.2006 Где: Москва, Россия Репутация: 63 Всего: 196 |
пропиши туда: -I/usr/local/include/stlport
|
|||
|
||||
| kometa_75 |
|
|||
|
Шустрый ![]() Профиль Группа: Участник Сообщений: 62 Регистрация: 24.10.2007 Репутация: нет Всего: нет |
Спасибо большое ! Компилится теперь без ошибок. Однако при линковке вылетает много ошибок. Вот первые две: test_srlport.cpp:(.text+0x1c): undefined reference to `stlpmtx_std::cout' test_srlport.cpp:(.text+0x28): undefined reference to `stlpmtx_std::cout' Подключил либу к цели libstlport.so, таким образом как Вы писали: -lstlport. |
|||
|
||||
| bsa |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 9185 Регистрация: 6.4.2006 Где: Москва, Россия Репутация: 63 Всего: 196 |
kometa_75, значит надо подключить еще какую-то.
А зачем вообще все это? Чем не устраивает libstdc++ идущая в комплекте к gcc? |
|||
|
||||
| kometa_75 |
|
|||
|
Шустрый ![]() Профиль Группа: Участник Сообщений: 62 Регистрация: 24.10.2007 Репутация: нет Всего: нет |
Попробовал подключать все варианты, там их три: libstlportg.so, libstlport.so, libstlportstlg.so. Результат - одинаковый. Подозреваю что дело в настройках проекта, STLport собрана в многопоточной конфигурации. Во всяком случае, с похожей ситуацией я когда-то сталкивался в винде и VC+STLport. Хочу протестить производительность. В винде тестил несколько реализаций STL. Все очень сильно проигрывают STLport. PS. Как в KDevelop указываются параметры для сборки многопоточных приложений ? |
|||
|
||||
| bsa |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 9185 Регистрация: 6.4.2006 Где: Москва, Россия Репутация: 63 Всего: 196 |
добавь в параметры компилятора C++ (CXXFLAGS) параметр: -D_PTHREADS
|
|||
|
||||
| kometa_75 |
|
|||
|
Шустрый ![]() Профиль Группа: Участник Сообщений: 62 Регистрация: 24.10.2007 Репутация: нет Всего: нет |
Всё равно: test_srlport.cpp:(.text+0xb5): undefined reference to `stlpmtx_std::__node_alloc::_M_deallocate(void*, unsigned int)' test_srlport.cpp:(.text+0xfe): undefined reference to `stlpmtx_std::__node_alloc::_M_deallocate(void*, unsigned int)' В винде у меня так ругалось когда я собирал проект с однопоточной CRT. |
|||
|
||||
| bsa |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 9185 Регистрация: 6.4.2006 Где: Москва, Россия Репутация: 63 Всего: 196 |
kometa_75, я попробовал
У меня собралось и заработало. |
|||
|
||||
![]()
|
| Правила форума "С++:Общие вопросы" | |
|
|
Добро пожаловать!
Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Earnest Daevaorn |
| 0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
| 0 Пользователей: | |
| « Предыдущая тема | C/C++: Общие вопросы | Следующая тема » |
|
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |