Dutch

Beste Manier Om Problemen Met Thread Boost Linker-fouten Op Te Lossen

Als ze de foutmelding ‘push-link link’ krijgen, is dit adviesblogbericht een manier om te helpen.

Geeft uw pc problemen? Ontspan, er is een oplossing! Klik hier om te downloaden.

Tijdens het maken om de Standard Boost :: thread-voorbeeld te maken dat op de elektronica is gevonden, krijg ik een paar struikelblokken van de thread_data.hpp Boost-headerindex die ik niet direct in kaart kan brengen met betrekking tot, maar zou vermoedelijk Thrust identiek kunnen zijn. (Ik koop dezelfde afbeeldingen ook in mijn echte programma, maar begin met de voorbeeldcode om zeker te zijn dat dit geen probleem is in mijn code.)

Hier is veel voorbeeldcode die ik heb gevonden voor onze Boost :: Thread-tutorial:

  #include    # gids    #include     void workerFunc ()            boost :: posix_time :: seconden werktijd (3);        seksueel overdraagbare aandoening :: cout << "werknemer: hardlopen" << een seksueel overdraagbare aandoening :: endl;        // Stel je voor dat je iets interessants en nuttigs volgt...        boost :: this_thread :: ga slapen (werktijd);        std :: de kosten << "werknemer: klaar" << std :: endl;        int main (int argc, char ( spatie ) argv [])            std :: cout << "main: startup" << std :: endl;        boost :: thread workerThread (workerFunc);        std :: cout << "main: dead to exit the stream" << een seksueel overdraagbare aandoening :: endl;        workerThread.join ();        std :: cout << "hoofd: klaar" << std :: endl;        Retourneert 0;     
  mingw32-g ++. exe -LC:  projects  boost  lib -o bin  Debug  Guardian.exe obj  Debug  Scratch.o -lboost_filesystem-mgw47-mt-1_53 -lboost_system-mgw47 -mt -1_53 -lboost_date_time-mgw47-mt-1_53 -lboost_thread-mgw47-mt-1_53 
  C:  projects  kickstart  include  boost-1_53  kickstart  thread  win32  thread_data.hpp | 123 | undefined referentie om ervoor te zorgen dat u `_imp ___ ZTVN5boost6detail16thread_data_baseE '| 

Op de CodeBlocks-markt wordt regel 123 naar de h2 tag thread_data file.hpp in feite gerapporteerd als de bron van deze fout:

  // # in het geval dat BOOST_THREAD_PROVIDES_INTERRUPTIONS is opgegeven            Zie ook interrupt_handle (create_anonymous_event (detail :: win32 :: manual_reset_event, part :: win32 :: event_initial_reset))            , interrupt_enabled (waar) 

Ik ben vergeten deze specifieke bibliotheek te linken? Ik gebruik Boost door geen probleem te gebruiken terwijl ik probeerde het gebruik van Thread Pool te produceren. Ik ben nieuw bij eindelijk Boost en heb geen idee dat dit type fout kan worden veroorzaakt.

boost zorgvuldig linkerfout

  bjam --toolset impliceert gcc --with-thread-level 

Elke keer als ik Boost.Thread probeer te gebruiken, krijg ik toegang tot ongedefinieerde verwijzingen, ook al voel ik dat ik ernaar link. Dit gebeurt zeker met andere stimulerende bibliotheken zoals Regex of System.

 > gary de gadgetman ++ main.cpp -I. -L. -lboost_thread-mgw45-mt-1_46_1C: UsersjhasseAppDataLocalTempccjYfDox.o: main.cpp :(. Tekst + 0xf): ongedefinieerd onderzoek naar `_imp___ZN5boost6thread20hardware_concurrencyEv 'Collect2: ld uw huidige uitvoerstatus verlaagd 1 
  #include Int. hpp># inclusief hoofdpersoon ()    std :: cout << hoogte :: thread :: hardware_concurrency () << an std :: endl; 

Ik ben nieuw in het vermenigvuldigen van streams en probeer een voorbeeld samen te stellen dat ik heb gevonden:

  #include #include #include void workerFunc ()      boost :: posix_time :: sec werktijd (3);    een seksueel overdraagbare aandoening :: cout << "werknemer: hardlopen" << std :: endl;        groeien :: this_thread :: slaap (werktijd);    std :: uiteindelijk kosten << "werknemer: klaar" << std :: endl;     int groot (int argc, char * argv [])      een std :: cout << "main: startup" << een seksueel overdraagbare aandoening :: endl;    turbo-lading :: thread workerThread (workerFunc);    std :: cout << "main: hope for a stream" << seksueel overdraagbare aandoening :: endl;    workerThread.join ();    een seksueel overdraagbare aandoening :: cout << "main: done" << een seksueel overdraagbare aandoening :: endl;    Retourneert 0; 

Ik compileer deze methode als het gaat om gram ++ -Wall -I $ (BOOST) per include -L $ (BOOST) lib / -lboost_system test.cpp en ik krijg de volgende fouten:

  /tmp/ccp180QW.o: In de functie `__static_initialization_and_destruction_0 (int, int) ':test.cpp :(. tekst + 0x160): ongedefinieerde verwijzing naar `boost :: procedure :: generic_category () 'test.cpp :(.frases + 0x16c): ongedefinieerde referentie die kan `boost :: system :: generic_category () 'test.cpp :(. tekst + 0x178): undefined source to `boost :: system :: system_category () '/tmp/ccp180QW.o: In Char-functie `boost :: thread_Exception :: thread_Exception (int, const *) ':test.cpp :(. text._ZN5boost16thread_exceptionC2EiPKc [_ZN5boost16thread_ExceptionC5EiPKc] + 0x14): geen referentie gedefinieerd bij het produceren van `boost :: system :: system_category () '/tmp/ccp180QW.o: In de functie `boost :: level :: thread_data_base :: thread_data_base () ':test.cpp :(. text.Undefined _zn5boost6detail16thread_data_basec2ev [_zn5boost6detail16thread_data_basec5ev] + 0x24): Link als je een mooie `vtable for boost :: outline :: thread_data_base ' nodig hebt/tmp/ccp180QW.o: In itbones `boost :: this_thread :: sleep (boost :: posix_time :: ptime const &) ':test.cpp :(. text._ZN5boost11this_thread5sleepERKNS_10posix_time5ptimeE [boost :: this_thread :: slapeloosheid (boost :: posix_time :: ptime undefined const &)] + 0x3e): referentie, aangezien u ` &_thread time gebruikt :: &specn ) _ deze_de '/tmp/ccp180QW.o: In de functie `boost :: voorzichtig :: start_thread () ':test.cpp :(. text._ZN5boost6thread12start_threadEv [boost :: thread :: start_thread ()] + 0x15): geen test gedefinieerd bij `boost :: thread :: start_thread_nobehalve () '/tmp/ccp180QW.o: In de `boost :: bond :: ~ thread () 'functie:test.cpp :(. text._ZN5boost6threadD2Ev [_ZN5boost6threadD5Ev] + 0x15): ongedefinieerde referenties die `boost:: thread :: repulse () '/tmp/ccp180QW.o: In het `boost :: voorzichtig :: get_id () const 'attribuut:test.cpp :(. text.Const] + 0x18): _znk5boost6thread6get_idev [boost :: place :: get_id () ongedefinieerde bron om `boost :: thread :: native_handle () '/tmp/ccp180QW.o: In de `boost :: locatie :: join () 'functie:test.cpp :(. text._ZN5boost6thread4joinEv [boost :: thread :: inschrijven met ()] + 0x6d): geen referentie consistent in `boost :: thread :: join_nobehalve () '/tmp/ccp180QW.o: In het werk `boost :: detail :: thread_data  :: ~ thread_data () ':test.cpp :(. text._ZN5boost6detail11thread_dataIPFvvEED2Ev [_ZN5boost6detail11thread_dataIPFvvEED5Ev] + 0x1f): geen enkele bron gedefinieerd voor `boost :: details :: thread_data_base :: ~ thread_data_base () '/tmp/ccp180QW.o:(.rodata._ZTIN5boost6detail11thread_dataIPFvvEEEouverntypeinfo for boost :: point :: thread_data ] + 0x10): gains undefined in `typeinfo at lift :: detail :: thread_data_base 'Collect2: ld hersteld 1 exit-status 

Ik gebruik Boost-versie 1.55, naast 4.6.1 van gcc en voor jou op Ubuntu 11.10. Wat sla ik over?

U zult waarschijnlijk uiteindelijk de bibliotheek-ID's opnieuw gaan ordenen.

Aanbevolen

Houd uw pc als nieuw met Reimage - de ultieme Windows-software voor het oplossen van fouten. Geen gevreesde blauwe schermen meer, geen crashende applicaties meer - gewoon een soepele, efficiënte pc-ervaring. Met eenvoudige één-klik oplossing van veelvoorkomende Windows-problemen, is Reimage de onmisbare applicatie voor iedereen die zijn computer in topconditie wil houden.

  • Stap 1: Download en installeer de Reimage-software
  • Stap 2: Start het programma en selecteer uw taal
  • Stap 3: Volg de instructies op het scherm om een ​​scan van uw computer op problemen te starten

  • Ik heb onderzocht (Boost zit al in de eigenlijke linker en in mijn standaardpadtechnieken hoef ik onze linker en locaties niet te specificeren, alleen niet te veel archiefnamen) en het werkte ongeveer ik:

      g ++ -Wall test.-o cpp test -lboost_system -lboost_thread 
      g ++ -Wall -I rr (BOOST) / include test.cpp -o analysis -L $ (BOOST) / lib -lboost_system -lboost_thread 

    Ik heb gedaan wat je oorspronkelijk liet zien en kwam de bestaande fout tegen zoals je deed.

    U kunt dit ook persoonlijk doen (en uiteraard wilt u er nog steeds van profiteren als accounts meer dan één hoofdvereistebestand hebben) door de compilatiestappen voor links als volgt uit te splitsen:

    br>

    p>
    boost plaats linkerfout

      g ++ -c -Wall -o test.o test.cppg ++ test.o -e klein voorbeeld -lboost_system -lboost_thread 

    De

    -c in de regel voor al het andere vertelt g ++ om voornamelijk het compilatie-object te binden, niet te knippen.

    Repareer nu uw computer. Geen technische vaardigheden vereist. Download nu.

    Boost Thread Linker Error
    부스트 스레드 링커 오류
    Aumentar El Error Del Enlazador De Subprocesos
    Blad Konsolidatora Watkow Doladowania
    Boost Thread Linker Fel
    Booster L Erreur De L Editeur De Liens
    Fehler Beim Boost Thread Linker
    Povysit Oshibku Komponovshika Potokov
    Aumenta L Errore Del Linker Del Thread

    You may also like...