crossplatform.ru

Здравствуйте, гость ( Вход | Регистрация )

3 страниц V  < 1 2 3 >  
Ответить в данную темуНачать новую тему
> BGL, bjam, gcc, icc, Сборка приложения boost. Нужна помощь
Iron Bug
  опции профиля:
сообщение 10.2.2011, 15:13
Сообщение #11


Профессионал
*****

Группа: Модератор
Сообщений: 1611
Регистрация: 6.2.2009
Из: Yekaterinburg
Пользователь №: 533

Спасибо сказали: 219 раз(а)




Репутация:   12  


тебе уже сказали, что разные компиляторы могут генерить НЕСОВМЕСТИМЫЙ код. и поэтому линковщик может обламываться.
чтобы они генерили совместимый код, нужно соблюдать кучу условностей и проставлять специальные ключи. а для некоторых сочетаний это в принципе невозможно.
поэтому если ты уверен, что у тебя все настройки линковки правильные, что битность совпадает и всё такое, то тут есть два варианта:
1. собрать boost с icc (это возможно, даже без всяческих патчей, ну, может, пара флажков разве что. и он работает - я дома собирала)
2. взять gcc и готовый буст под него и собирать всё с gcc.

а, ну ещё можно попробовать сделать динамическую линковку через dl, но тоже не факт, что будет работать.

Сообщение отредактировал Iron Bug - 10.2.2011, 15:14
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
e.ustimenko
  опции профиля:
сообщение 10.2.2011, 15:19
Сообщение #12


Новичок


Группа: Новичок
Сообщений: 9
Регистрация: 10.2.2011
Пользователь №: 2402

Спасибо сказали: 0 раз(а)




Репутация:   0  


Цитата(Iron Bug @ 10.2.2011, 18:13) *
тебе уже сказали, что разные компиляторы могут генерить НЕСОВМЕСТИМЫЙ код. и поэтому линковщик может обламываться.
чтобы они генерили совместимый код, нужно соблюдать кучу условностей и проставлять специальные ключи. а для некоторых сочетаний это в принципе невозможно.
поэтому если ты уверен, что у тебя все настройки линковки правильные, что битность совпадает и всё такое, то тут есть два варианта:
1. собрать boost с icc (это возможно, даже без всяческих патчей, ну, может, пара флажков разве что. и он работает - я дома собирала)
2. взять gcc и готовый буст под него и собирать всё с gcc.

а, ну ещё можно попробовать сделать динамическую линковку через dl, но тоже не факт, что будет работать.


Я собрал все с gcc, вот следующая ошибка:

/usr/include/boost/graph/detail/read_graphviz_new.hpp:104: undefined reference to `boost::detail::graph::read_graphviz(std::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, boost::detail::graph::mutate_graph*)'

Вот код функции, на которую он ругается:

GraphvizDigraph SearchShortWay::openGraphvizFile(string path)
{
    GraphvizDigraph g_dot;
    dynamic_properties dp;

    boost::read_graphviz(path, g_dot,dp);

    return g_dot;
}


В библиотеках линковки не уверен. То, что написано, то и подключил. Может, что еще надо, чтобы увидело именно эту функцию и именно в таком виде.

Это и пытаюсь выяснить.
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
kwisp
  опции профиля:
сообщение 10.2.2011, 15:31
Сообщение #13


астарожна ынтжинэр
*****

Группа: Участник
Сообщений: 1404
Регистрация: 26.11.2008
Из: ТаганрогРодинаЧехова
Пользователь №: 435

Спасибо сказали: 113 раз(а)




Репутация:   23  


e.ustimenko,
так ты же в эклипсе ваяешь.
пути к boost библиотекам прописаны?
кто делает Makefile?

пробывал собирать из консоли?

простенький пример, по возможности в один файл, с этой функцией накидай и попробуй собрать из консоли.

Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
Iron Bug
  опции профиля:
сообщение 10.2.2011, 15:40
Сообщение #14


Профессионал
*****

Группа: Модератор
Сообщений: 1611
Регистрация: 6.2.2009
Из: Yekaterinburg
Пользователь №: 533

Спасибо сказали: 219 раз(а)




Репутация:   12  


так, если это уже gcc ругается, то проверяй типы.
что есть dp, какого он типа и подходит ли он к вызову данной функции?
тут уже смотри доки буста по библиотеке.

Сообщение отредактировал Iron Bug - 10.2.2011, 15:46
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
e.ustimenko
  опции профиля:
сообщение 10.2.2011, 15:48
Сообщение #15


Новичок


Группа: Новичок
Сообщений: 9
Регистрация: 10.2.2011
Пользователь №: 2402

Спасибо сказали: 0 раз(а)




Репутация:   0  


Цитата(kwisp @ 10.2.2011, 18:31) *
e.ustimenko,
так ты же в эклипсе ваяешь.
пути к boost библиотекам прописаны?
кто делает Makefile?

пробывал собирать из консоли?

простенький пример, по возможности в один файл, с этой функцией накидай и попробуй собрать из консоли.


Ругается на то же самое, уже пробовал и не раз...

Цитата(Iron Bug @ 10.2.2011, 18:40) *
Цитата(e.ustimenko @ 10.2.2011, 17:19) *
Вот код функции, на которую он ругается:

при чём тут код функции? ты видишь, что у тебя ошибка линковки, а не компиляции? а раз ты добрался до линковщика и компилятор не заругался - значит, дело не в синтаксисе и не в несоответствии типов. это именно ошибка линковщика и ошибка эта означает, что указанной функции в библиотеках и объектниках, которые ты подсунул линковщику, просто нет.


Спасибо, я это все вижу. Теперь мне нужна библиотека, где есть эта функция. По идее, как говорилось по ссылке http://www.cs.brown.edu/~jwicks/boost/libs...d-graphviz.html, я ее собрал.
Подключил, но не помогает. Поэтому ищу другие пути решения.
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
Iron Bug
  опции профиля:
сообщение 10.2.2011, 15:51
Сообщение #16


Профессионал
*****

Группа: Модератор
Сообщений: 1611
Регистрация: 6.2.2009
Из: Yekaterinburg
Пользователь №: 533

Спасибо сказали: 219 раз(а)




Репутация:   12  


у тебя в файле
#include <boost/graph/graphviz.hpp>
прописан?

Сообщение отредактировал Iron Bug - 10.2.2011, 15:52
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
e.ustimenko
  опции профиля:
сообщение 10.2.2011, 15:54
Сообщение #17


Новичок


Группа: Новичок
Сообщений: 9
Регистрация: 10.2.2011
Пользователь №: 2402

Спасибо сказали: 0 раз(а)




Репутация:   0  


Цитата(Iron Bug @ 10.2.2011, 18:51) *
у тебя в файле
#include <boost/graph/graphviz.hpp>
прописан?


Да, там все есть. Проверял.
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
Iron Bug
  опции профиля:
сообщение 10.2.2011, 16:02
Сообщение #18


Профессионал
*****

Группа: Модератор
Сообщений: 1611
Регистрация: 6.2.2009
Из: Yekaterinburg
Пользователь №: 533

Спасибо сказали: 219 раз(а)




Репутация:   12  


И ещё: проверь, что твой класс GraphvizDigraph
удовлетворяет MutableGraph Concept:
http://www.boost.org/doc/libs/1_45_0/libs/...tableGraph.html
там проверка есть - на соответствие коцепту. сначала удостоверься, что она проходит.
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
e.ustimenko
  опции профиля:
сообщение 10.2.2011, 16:44
Сообщение #19


Новичок


Группа: Новичок
Сообщений: 9
Регистрация: 10.2.2011
Пользователь №: 2402

Спасибо сказали: 0 раз(а)




Репутация:   0  


Нашел пример реализации, который убрал ошибку, которая у меня была, но не могу разобраться, что там что.

bool file; 
ifstream in(openfile.c_str(), ios::in);
dynamic_properties dp;
dp.property ("node_id", get(&ed_node::vertex_name, ug)); <--simple
file = read_graphviz(in, ug, dp, "node_id");


что такое здесь ed_node?
Причина редактирования: Евгений, используй тег code !!!
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
Iron Bug
  опции профиля:
сообщение 10.2.2011, 16:53
Сообщение #20


Профессионал
*****

Группа: Модератор
Сообщений: 1611
Регистрация: 6.2.2009
Из: Yekaterinburg
Пользователь №: 533

Спасибо сказали: 219 раз(а)




Репутация:   12  


Цитата(e.ustimenko @ 10.2.2011, 18:44) *
что такое здесь ed_node?

ну, очевидно, адрес некой переменной ed_node::vertex_name. обычный сишный адрес.
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение

3 страниц V  < 1 2 3 >
Быстрый ответОтветить в данную темуНачать новую тему
Теги
Нет тегов для показа


1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0




RSS Текстовая версия Сейчас: 28.4.2024, 7:48