Herzlich Willkommen, lieber Gast!
  Sie befinden sich hier:

  Forum » C / C++ (ANSI-Standard) » Linkerproblem mit Boost

Forum | Hilfe | Team | Links | Impressum | > Suche < | Mitglieder | Registrieren | Einloggen
  Quicklinks: MSDN-Online || STL || clib Reference Grundlagen || Literatur || E-Books || Zubehör || > F.A.Q. < || Downloads   

Autor Thread - Seiten: > 1 <
000
17.09.2006, 02:47 Uhr
PaRu



ich bekomme einen linkerfehler, wenn ich folgenden quellcode kompiliere.


C++:
#include <string>
#include <fstream>
#include "boost\filesystem\operations.hpp"
#include <iostream>
namespace boostFS = boost::filesystem;


bool find_file( const boostFS::path& dir_path, const std::string& file_name, boostFS::path& path_found )
{
    if ( !exists( dir_path ) )
        return false;
    boostFS::directory_iterator end_itr; // default construction yields past-the-end
    for ( boostFS::directory_iterator itr( dir_path ); itr != end_itr; ++itr )
    {
        if ( is_directory( *itr ) )
        {
            if ( find_file( *itr, file_name, path_found ) )
                return true;
        }
        else if ( itr->leaf() == file_name ) // see below
        {
            path_found = *itr;
            return true;
        }
    }
    return false;
}

int main( )
{
    char fileName[] = "test.txt";
    boostFS::path pfad("c:\temp");
    boostFS::path pfadFound("bla");

    find_file(pfad, fileName, pfadFound);

//    std::cout << "Path: " << pfadFound.string() << std::endl;

    //std::cin.get();
}



die fehlermeldung sieht wie folgt aus. leider kann ich damit nicht anfangen.


Code:
C:\User\Test Boost Library>mingw32-make all
g++  -Wall -I./src -I../../../Boost  -MM src/main.cpp > src/main.dep
g++  -Wall -I./src -I../../../Boost  -c src/main.cpp -o src/main.o
g++  -Wall -I./src -I../../../Boost  -o test  ./src/main.o
./src/main.o(.text+0x146):main.cpp: undefined reference to `boost::filesystem::exists(boost::filesystem::path const&)'
./src/main.o(.text+0x1b5):main.cpp: undefined reference to  boost::filesystem::is_directory(boost::filesystem::path const&)'
./src/main.o(.text+0x23f):main.cpp: undefined reference to `boost::filesystem::path::leaf() const'
./src/main.o(.text+0x487):main.cpp: undefined reference to `boost::filesystem::path::path(char const*)'
./src/main.o(.text+0x4a4):main.cpp: undefined reference to `boost::filesystem::path::path(char const*)'
./src/main.o(.text$_ZN5boost10filesystem18directory_iteratorC1ERKNS0_4pathE[boost::filesystem::directory_iterator::directory_iterator(boost::filesystem::path const&)]+0x67):main.cpp: undefined reference to `boost::filesystem::detail::dir_itr_init(boost::shared_ptr<boost::filesystem::detail::dir_itr_imp>&, boost::filesystem::path const&)'
./src/main.o(.text$_ZN5boost10filesystem18directory_iterator9incrementEv[boost::filesystem::directory_iterator::increment()]+0xd):main.cpp: undefined reference to `boost::filesystem::detail::dir_itr_increment(boost::shared_ptr<boost::filesy
stem::detail::dir_itr_imp>&)'
./src/main.o(.text$_ZNK5boost10filesystem18directory_iterator11dereferenceEv[boost::filesystem::directory_iterator::dereference() const]+0xd):main.cpp: undefined reference to  boost::filesystem::detail::dir_itr_dereference(boost::shared_ptr
<boost::filesystem::detail::dir_itr_imp> const&)'
collect2: ld returned 1 exit status
mingw32-make: *** [test] Error 1



mod edit: BENUTZE DIE BOARD TAGS SELBER
(bei so vielem Code und vieler Fehlerausgabe ist das ohne BOARD TAGS sehr unübersichtlich)
--
Gruß Patrick

Dieser Post wurde am 17.09.2006 um 09:48 Uhr von Pablo editiert.
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
001
17.09.2006, 02:50 Uhr
PaRu



klkl
--
Gruß Patrick

Dieser Post wurde am 17.09.2006 um 02:52 Uhr von PaRu editiert.
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
002
17.09.2006, 10:21 Uhr
PaRu



das problem scheint doch zu sein, dass die referenzen aus der boost library beim linken nicht gefunden werden. die library liegt in form von hpp dateien vor. includiert habe ich sie mit -I../../Boost. müssen die auch noch zusätzlich kompiliert werden, damit der linker sie einbinden kann? und wenn ja, wie stelle ich das am besten an (welche dateien brauch ich denn aus der kompletten library)?
was sind eigentlich hpp-dateien? ich habe die vorher noch nicht benutzt.
--
Gruß Patrick
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
003
17.09.2006, 18:21 Uhr
Spacelord
Hoffnungsloser Fall


Die library liegt nicht in hpp dateien vor sondern als lib Datei und dll.
Hast du boost überhaupt schon kompiliert?
Bzw. hast du schonmal was von bjam gehört?

Gruss Spacelord
--
.....Ich mach jetzt nämlich mein Jodeldiplom.Dann hab ich endlich was Eigenes.
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
004
17.09.2006, 18:39 Uhr
FloSoft
Medialer Over-Flow
(Administrator)


kann man da gut sagen - da ist ne readme dabei bei boost. oder auf der webseite den quickstart/doku "installation" lesen
--
class God : public ChuckNorris { };
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
Seiten: > 1 <     [ C / C++ (ANSI-Standard) ]  


ThWBoard 2.73 FloSoft-Edition
© by Paul Baecher & Felix Gonschorek (www.thwboard.de)

Anpassungen des Forums
© by Flo-Soft (www.flo-soft.de)

Sie sind Besucher: