Narzędzia użytkownika

Narzędzia witryny


graph_import_export

Różnice

Różnice między wybraną wersją a wersją aktualną.

Odnośnik do tego porównania

Both sides previous revision Previous revision
Next revision Both sides next revision
graph_import_export [2009/04/10 11:46]
sgasioro
graph_import_export [2009/04/10 11:47]
sgasioro
Linia 8: Linia 8:
 Istnieje duże prawdopodobieństwo,​ że opisana procedura nie rozwiąże wszystkich problemów, które się pojawią podczas próby doprowadzenia **read_graphml** do działania. Istnieje duże prawdopodobieństwo,​ że opisana procedura nie rozwiąże wszystkich problemów, które się pojawią podczas próby doprowadzenia **read_graphml** do działania.
  
-Musimy mieć biblioteki EXPAT (http://​sourceforge.net/​projects/​expat/​) i ustawic ​zmienne środowiskowe na odpowiednie ścieżki przed kompilacją bibliotek.+Musimy mieć biblioteki EXPAT (http://​sourceforge.net/​projects/​expat/​) i ustawić ​zmienne środowiskowe na odpowiednie ścieżki przed kompilacją bibliotek.
 np. (ważne cudzysłowy):​\\ np. (ważne cudzysłowy):​\\
 set EXPAT_INCLUDE="​...\Expat 2.0.1\Source\lib"​\\ set EXPAT_INCLUDE="​...\Expat 2.0.1\Source\lib"​\\
Linia 16: Linia 16:
 W odpowiednim katalogu ...\boost\libs\graph\build wywołujemy **bjam**. W odpowiednim katalogu ...\boost\libs\graph\build wywołujemy **bjam**.
 Jeśli pojawiło się ostrzeżenie o braku ścieżek EXPAT ustawiamy je ponownie. Jeśli pojawiło się ostrzeżenie o braku ścieżek EXPAT ustawiamy je ponownie.
-Sprawdzamy czy nie pojawiły się błędy i jęsli są to je korygujemy (np. nieznaleziono ​expat.h) ustawiając odpowiednie ścieżki EXPAT, include w kompilatorze itp. +Sprawdzamy czy nie pojawiły się błędy i jęsli są to je korygujemy (np. nie znaleziono ​expat.h) ustawiając odpowiednie ścieżki EXPAT, include w kompilatorze itp. 
-Jeśli kompilacja się nie powiodłą z powodu braku biblioteki expat.lib otwieramy plik **.../​boost/​libs/​graph/​build/​Jamfile.v2** i zmieniamy **<​find-shared-library>​expat** na **<​find-shared-library>​libexpat** lub inne np. libexpatMT, libexpatw, libexpatwMT w zależności od naszego celu (czy biblioteka wielowątkowa,​ czy debug itd.).+Jeśli kompilacja się nie powiodą z powodu braku biblioteki expat.lib otwieramy plik **.../​boost/​libs/​graph/​build/​Jamfile.v2** i zmieniamy **<​find-shared-library>​expat** na **<​find-shared-library>​libexpat** lub inne np. libexpatMT, libexpatw, libexpatwMT w zależności od naszego celu (czy biblioteka wielowątkowa,​ czy debug itd.).
  
 Kolejna przydatną rzeczą jest po linii **<​define>​BOOST_GRAPH_NO_LIB** dodanie **<​define>​XML_STATIC**,​ dzięki czemu nie będziemy musieli mieć pliki **libexpat.dll** przy uruchamianiu programu. Kolejna przydatną rzeczą jest po linii **<​define>​BOOST_GRAPH_NO_LIB** dodanie **<​define>​XML_STATIC**,​ dzięki czemu nie będziemy musieli mieć pliki **libexpat.dll** przy uruchamianiu programu.
Linia 26: Linia 26:
 Do kompilacji potrzebne jest również dołączenie biblioteki **libexpat.lib**. Do kompilacji potrzebne jest również dołączenie biblioteki **libexpat.lib**.
  
-Jeśli jednak chcemy mieć tylko jedne biblioteki Boost, musimy zbudować całe biblioteki Boost, w tym celu w katalogu **.../​boost/​** wywołujemy **bjam** z odpowiednimi parametrami (instrukcja w Getting Started). ​Pamietajmy ​ustwieniu ​zmiennych **EXPAT_INCLUDE** i **EXPAT_LIBPATH** przed wywołaniem **bjam**.+Jeśli jednak chcemy mieć tylko jedne biblioteki Boost, musimy zbudować całe biblioteki Boost, w tym celu w katalogu **.../​boost/​** wywołujemy **bjam** z odpowiednimi parametrami (instrukcja w Getting Started). ​Pamiętajmy ​ustawieniu ​zmiennych **EXPAT_INCLUDE** i **EXPAT_LIBPATH** przed wywołaniem **bjam**.
  
 Dobrze jest jednak najpierw skompilować samą bibliotekę Graph by zobaczyć czy kompiluje się bez błędów, ponieważ jeśli pojawią się błędy np. związane z biblioteką EXPAT, biblioteki Boost zbudują się bez obsługi GraphML readera. Dobrze jest jednak najpierw skompilować samą bibliotekę Graph by zobaczyć czy kompiluje się bez błędów, ponieważ jeśli pojawią się błędy np. związane z biblioteką EXPAT, biblioteki Boost zbudują się bez obsługi GraphML readera.
Linia 32: Linia 32:
 ====== Ograniczenia ====== ====== Ograniczenia ======
  
-Wczytywanie różnych grafów, np. z plików znalezionych w internecie, wymaga określenia różnych parametrów,​ co w praktyce wiąże się z zajrzeniem do pliku z grafem i ręczne określenie np. co jest głownym identyfikatorem węzła lub jakie każdy węzeł lub krawędź ma właściwości (np. "​name",​ "​color",​ "​weight"​). Nie ma jednej funkcji do wczytania dowolnego grafu, a przynajmniej nie jest taka opisana ​w dokumentacji. Jest to z góry narzucone przez niefortuny ​sposób opisu grafów w tych bibliotekach,​ który zakłada, że atrybuty grafu będą znane podczas kompilacji.+Wczytywanie różnych grafów, np. z plików znalezionych w internecie, wymaga określenia różnych parametrów,​ co w praktyce wiąże się z zajrzeniem do pliku z grafem i ręczne określenie np. co jest głownym identyfikatorem węzła lub jakie każdy węzeł lub krawędź ma właściwości (np. "​name",​ "​color",​ "​weight"​). Nie ma jednej funkcji do wczytania dowolnego grafu, a przynajmniej nie ma takiej opisanej ​w dokumentacji. Jest to z góry narzucone przez niefortunny ​sposób opisu grafów w tych bibliotekach,​ który zakłada, że atrybuty grafu będą znane podczas kompilacji.
 Jest to wielka wada, gdyż praktycznie uniemożliwia wykorzystanie tej biblioteki do wczytywania grafów stworzonych przez innych. Jest to wielka wada, gdyż praktycznie uniemożliwia wykorzystanie tej biblioteki do wczytywania grafów stworzonych przez innych.
graph_import_export.txt · ostatnio zmienione: 2009/04/10 12:53 przez sgasioro