Модераторы: Daevaorn

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> KDevelop+STLport, как прикрутить ? 
:(
    Опции темы
kometa_75
Дата 7.12.2007, 12:46 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 62
Регистрация: 24.10.2007

Репутация: нет
Всего: нет



Собственно вопрос по сабжу. KDevelop работает на Linux, STLport собран и установлен. Не так давно работаю с этой IDE, доселе внешние либы не подключал. Буду благодарен за подробное описание этой манипуляции. 
З.Ы. Просьба не пинать, на офсайте был, доку читал, нужного не нашёл.
PM MAIL   Вверх
bsa
Дата 7.12.2007, 12:55 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Модератор
Сообщений: 9185
Регистрация: 6.4.2006
Где: Москва, Россия

Репутация: 63
Всего: 196



щелкаешь правой кнопкой по цели, выбираешь параметры, заходишь в закладку "Библиотеки" и в разделе "компоновать библиотеки вне проекта (LDADD)" жмешь добавить. В поле ввода пишешь -l<libname> (например: -lm подключит библиотечный файл libm.so).
PM   Вверх
kometa_75
Дата 7.12.2007, 13:04 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 62
Регистрация: 24.10.2007

Репутация: нет
Всего: нет



Цитата(bsa @ 7.12.2007,  12:55)
щелкаешь правой кнопкой по цели, выбираешь параметры, заходишь в закладку "Библиотеки" и в разделе "компоновать библиотеки вне проекта (LDADD)" жмешь добавить. В поле ввода пишешь -l<libname> (например: -lm подключит библиотечный файл libm.so).

У меня ругается на хидеры, хотя указал их явно. Однако вложенные включения не видит.
PM MAIL   Вверх
bsa
Дата 7.12.2007, 13:39 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Модератор
Сообщений: 9185
Регистрация: 6.4.2006
Где: Москва, Россия

Репутация: 63
Всего: 196



в KDevelop жмешь правой кнопкой на папке, где лежит проект, выбираешь параметры, "включаемые файлы" и жмешь "добавить", затем вводишь -I/path/to/headers-root-dir (например: -I/usr/include/STLport)
PM   Вверх
kometa_75
Дата 7.12.2007, 14:05 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 62
Регистрация: 24.10.2007

Репутация: нет
Всего: нет



Цитата(bsa @ 7.12.2007,  13:39)
в KDevelop жмешь правой кнопкой на папке, где лежит проект, выбираешь параметры, "включаемые файлы" и жмешь "добавить", затем вводишь -I/path/to/headers-root-dir (например: -I/usr/include/STLport)

У меня 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.

PM MAIL   Вверх
kometa_75
Дата 7.12.2007, 14:28 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 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;
}
PM MAIL   Вверх
bsa
Дата 7.12.2007, 14:50 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Модератор
Сообщений: 9185
Регистрация: 6.4.2006
Где: Москва, Россия

Репутация: 63
Всего: 196



Цитата(kometa_75 @ 7.12.2007,  14:05)
У меня KDevelop 3.5.7. выбрать параметры не получается, такого пункта просто нет. Может я неправильно что-то делаю...

В KDevelop справа, когда открыт Automake Manager, есть два окошка. В верхнем перечислены подроекты. Обычно, самый верхний - src. Вот на нем, жмешь правой кнопкой и выбираешь параметры.
PM   Вверх
kometa_75
Дата 7.12.2007, 14:57 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 62
Регистрация: 24.10.2007

Репутация: нет
Всего: нет



Цитата(bsa @ 7.12.2007,  14:50)
Цитата(kometa_75 @ 7.12.2007,  14:05)
У меня KDevelop 3.5.7. выбрать параметры не получается, такого пункта просто нет. Может я неправильно что-то делаю...

В KDevelop справа, когда открыт Automake Manager, есть два окошка. В верхнем перечислены подроекты. Обычно, самый верхний - src. Вот на нем, жмешь правой кнопкой и выбираешь параметры.

Нашёл, сделал... Получил ошибки, см. предыдущий мой пост. Путь указал так: -I/usr/local/include
PM MAIL   Вверх
bsa
Дата 7.12.2007, 15:04 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Модератор
Сообщений: 9185
Регистрация: 6.4.2006
Где: Москва, Россия

Репутация: 63
Всего: 196



пропиши туда: -I/usr/local/include/stlport
PM   Вверх
kometa_75
Дата 7.12.2007, 15:25 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 62
Регистрация: 24.10.2007

Репутация: нет
Всего: нет



Цитата(bsa @ 7.12.2007,  15:04)
пропиши туда: -I/usr/local/include/stlport

Спасибо большое ! Компилится теперь без ошибок. Однако при линковке вылетает много ошибок. Вот первые две:
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. 
PM MAIL   Вверх
bsa
Дата 7.12.2007, 15:27 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Модератор
Сообщений: 9185
Регистрация: 6.4.2006
Где: Москва, Россия

Репутация: 63
Всего: 196



kometa_75, значит надо подключить еще какую-то.
А зачем вообще все это? Чем не устраивает libstdc++ идущая в комплекте к gcc?
PM   Вверх
kometa_75
Дата 7.12.2007, 15:38 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 62
Регистрация: 24.10.2007

Репутация: нет
Всего: нет



Цитата(bsa @ 7.12.2007,  15:27)
kometa_75, значит надо подключить еще какую-то.
А зачем вообще все это? Чем не устраивает libstdc++ идущая в комплекте к gcc?

Попробовал подключать все варианты, там их три: libstlportg.so, libstlport.so, libstlportstlg.so. Результат - одинаковый.
Подозреваю что дело в настройках проекта, STLport собрана в многопоточной конфигурации. Во всяком случае, с похожей ситуацией я когда-то сталкивался в винде и VC+STLport.
Хочу протестить производительность. В винде тестил несколько реализаций STL. Все очень сильно проигрывают STLport.
PS. Как в KDevelop указываются параметры для сборки многопоточных приложений ?

PM MAIL   Вверх
bsa
Дата 7.12.2007, 16:39 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Модератор
Сообщений: 9185
Регистрация: 6.4.2006
Где: Москва, Россия

Репутация: 63
Всего: 196



добавь в параметры компилятора C++ (CXXFLAGS) параметр: -D_PTHREADS
PM   Вверх
kometa_75
Дата 7.12.2007, 16:54 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 62
Регистрация: 24.10.2007

Репутация: нет
Всего: нет



Цитата(bsa @ 7.12.2007,  16:39)
добавь в параметры компилятора C++ (CXXFLAGS) параметр: -D_PTHREADS

Всё равно:
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.
PM MAIL   Вверх
bsa
Дата 7.12.2007, 16:58 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Модератор
Сообщений: 9185
Регистрация: 6.4.2006
Где: Москва, Россия

Репутация: 63
Всего: 196



kometa_75, я попробовал 
Код
$ g++ -D_PTHREADS -I/usr/include/stlport -lstlport test.cpp -o test
(у меня STLport установлен в /usr)
У меня собралось и заработало.
PM   Вверх
Ответ в темуСоздание новой темы Создание опроса
Правила форума "С++:Общие вопросы"
Earnest Daevaorn

Добро пожаловать!

  • Черновик стандарта C++ (за октябрь 2005) можно скачать с этого сайта. Прямая ссылка на файл черновика(4.4мб).
  • Черновик стандарта C (за сентябрь 2005) можно скачать с этого сайта. Прямая ссылка на файл черновика (3.4мб).
  • Прежде чем задать вопрос, прочтите это и/или это!
  • Здесь хранится весь мировой запас ссылок на документы, связанные с C++ :)
  • Не брезгуйте пользоваться тегами [code=cpp][/code].
  • Пожалуйста, не просите написать за вас программы в этом разделе - для этого существует "Центр Помощи".
  • C++ FAQ

Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Earnest Daevaorn

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | C/C++: Общие вопросы | Следующая тема »


 




[ Время генерации скрипта: 0.0542 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.