Italian

Il Modo Migliore Per Risolvere Gli Errori Del Thread Boost Linker

Se ricevi un errore di “errore di collegamento push-link”, questo tipo di post sul blog è qui per aiutarti.

Il tuo PC ti dà problemi? Rilassati, c'è una soluzione! Clicca qui per scaricare.

Durante gli sforzi per creare l’esempio di thread Standard Boost :: trovato sull’accesso a Internet, sto riscontrando alcuni ostacoli dal repository di intestazione thread_data.hpp Boost su cui non posso mappare direttamente, ma potrebbe presumibilmente essere Thrust essenziale. (Compro anche gli stessi insetti nel mio programma reale, ma includo il codice di esempio per rendere probabile che questo non sia un problema durante il mio codice.)

Ecco alcuni esempi di codice che ho trovato per tutto il Boost :: Tutorial thread:

  #include    # fornire    #include     void workerFunc()            boost :: posix_time :: secondi workTime (3);        una malattia a trasmissione sessuale :: cout << "lavoratore: corsa" << malattia a trasmissione sessuale :: endl;        // Immagina di seguire qualcosa di potente...        boost :: this_thread :: bugia (orario di lavoro);        std :: prezzo << "lavoratore: finito" << std :: endl;        int main (int argc, char ( vuoto ) argv [])            std :: cout << "principale: avvio" << std :: endl;        boost :: thread workerThread (workerFunc);        std :: cout << "main: viene utilizzato per uscire dal flusso" << malattie sessualmente trasmissibili :: endl;        workerThread.join ();        std :: cout << "main: done" << std :: endl;        Restituisce 0;     
  mingw32-g ++. exe -LC:progettiboostlib -o binDebugGuardian.exe objDebugScratch.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:  progetti  bump  include  boost-1_53  boost rapido  thread  win32  thread_data.hpp | 123 | riferimento non definito che `_imp ___ ZTVN5boost6detail16thread_data_baseE '| 

Sul mercato CodeBlocks, la riga 123 più tipicamente associata al tag h2 thread_data file.hpp è stata effettivamente segnalata come la fonte dell’errore:

  // # nel caso in cui sia specificato BOOST_THREAD_PROVIDES_INTERRUPTIONS            Vedi anche interrupt_handle (create_anonymous_event (detail :: win32 :: manual_reset_event, details :: win32 :: event_initial_reset))            , interrupt_enabled (vero) 

Ho dimenticato di linkare, vedete, la libreria? Sto usando Boost senza problemi mentre provavo a usare Thread Pool. Sono nuovo per aiutarti Boost e non ho idea di qualcosa che potrebbe causare questo tipo di errore.

boost attentamente l'errore del linker

  bjam --toolset è uguale a gcc --with-thread-level 

Ogni volta che provo a utilizzare Boost.Thread mi assicuro referral indefiniti anche se mi stavo collegando ad esso. Questo potrebbe non accadere con altre librerie di potenziamento simili a Regex o System.

 > g ++ main.cpp -I. -L. -lboost_thread-mgw45-mt-1_46_1C: UsersjhasseAppDataLocalTempccjYfDox.o: main.cpp :(. Text + 0xf): sorgente non definita per `_imp___ZN5boost6thread20hardware_concurrencyEv 'Collect2: ld ha decrementato il nostro stato dell'output 1 
  #include interno hpp># includi principale ()    std :: cout << elevate :: thread :: hardware_concurrency () << una malattia a trasmissione sessuale :: endl; 

Sono nuovo nel moltiplicare i flussi e ho senso provare a mettere insieme un esempio elementare che ho trovato:

  #include #include #include void workerFunc()      boost :: posix_time :: while workTime (3);    una malattia a trasmissione sessuale :: cout << "lavoratore: correndo" << std :: endl;        sviluppa :: this_thread :: sleep (workTime);    std :: prezzo totale << "lavoratore: finito" << std :: endl;     int best (int argc, char * argv [])      malattie sessualmente trasmissibili :: cout << "main: startup" << malattie sessualmente trasmissibili :: endl;    apportare miglioramenti a :: thread workerThread (workerFunc);    std :: cout << "main: speranza per un flusso" << malattie sessualmente trasmissibili :: endl;    workerThread.join ();    an std :: cout << "main: done" << an std :: endl;    Restituisce 0; 

Lo compilo quando si tratta di v ++ -Wall -I $ (BOOST) e includo -L $ (BOOST) - lib / -lboost_system test.cpp e ottengo i seguenti errori:

  /tmp/ccp180QW.o: Nella funzione `__static_initialization_and_destruction_0 (int, int) ':test.cpp :(. text + 0x160): riferimento non definito a `boost :: body :: generic_category () 'test.cpp :(.testo scritto + 0x16c): riferimento non definito in cui "boost :: system :: generic_category ()"test.cpp :(. text + 0x178): focus non definito su `boost :: system :: system_category () '/tmp/ccp180QW.o: In Char capacità `boost :: thread_Exception :: thread_Exception (int, const *) ':test.cpp :(. text._ZN5boost16thread_exceptionC2EiPKc [_ZN5boost16thread_ExceptionC5EiPKc] + 0x14): nessun riferimento definito quando `boost :: system :: system_category () '/tmp/ccp180QW.o: Nella funzione `boost :: point :: thread_data_base :: thread_data_base () ':test.cpp :(.text.Undefined _zn5boost6detail16thread_data_basec2ev [_zn5boost6detail16thread_data_basec5ev] + 0x24): Link se hai bisogno di una singola `vtable per boost :: information :: thread_data_base '/tmp/ccp180QW.o: In itbones `boost :: this_thread :: sleep (boost :: posix_time :: ptime const &) ':test.cpp :(. text._ZN5boost11this_thread5sleepERKNS_10posix_time5ptimeE [boost :: this_thread :: have sex (boost :: posix_time :: ptime undefined const &)] + 0x3e): riferimento, nel caso si utilizzi `boost :: hiden_thread timespec & &) _ questo_esimo '/tmp/ccp180QW.o: Nella funzione `boost :: location :: start_thread() ':test.cpp :(. text._ZN5boost6thread12start_threadEv [boost :: thread :: start_thread ()] + 0x15): nessun test definito pensato per `boost :: thread :: start_thread_noException () '/tmp/ccp180QW.o: Nella funzione `boost :: twine :: ~ thread () ':test.cpp :(. text._ZN5boost6threadD2Ev [_ZN5boost6threadD5Ev] + 0x15): riferimenti non definiti che aiuteranno `boost :: thread :: detachment () '/tmp/ccp180QW.o: nell'attributo `boost :: place :: get_id () const ':test.cpp :(. text.Const] + 0x18): _znk5boost6thread6get_idev [boost :: cautamente thread :: get_id () ricerca non definita su `boost :: thread :: native_handle () '/tmp/ccp180QW.o: Nella funzione `boost :: line :: join() ':test.cpp :(. text._ZN5boost6thread4joinEv [boost :: thread :: vai con ()] + 0x6d): nessun riferimento a cui si fa riferimento in `boost :: thread :: join_noException () '/tmp/ccp180QW.o: Nel successo `boost :: detail :: thread_data  :: ~ thread_data () ':test.cpp :(.text._ZN5boost6detail11thread_dataIPFvvEED2Ev [_ZN5boost6detail11thread_dataIPFvvEED5Ev] + 0x1f): nessuna delle sorgenti definite per `boost :: level :: thread_data_base :: ~ thread_data_base () '/tmp/ccp180QW.o:(.rodata._ZTIN5boost6detail11thread_dataIPFvvEEEouverntypeinfo for boost :: specifica :: thread_data ] + 0x10): riporta undefined in `typeinfo at development :: detail :: thread_data_base 'Collect2: torna indietro di 1 stato di uscita 

Sto usando la versione Boost 1.55 vicino all’aggiunta alla 4.6.1 di gcc e per aiutare Ubuntu 11.10. Cosa sto perdendo?

Probabilmente dovrai riorganizzare gli ID della libreria qui alla fine.

Consigliato

Mantieni il tuo PC funzionante come nuovo con Reimage � il software Windows per la risoluzione degli errori definitivo. Niente più temuti schermi blu, niente più applicazioni che si bloccano, solo un'esperienza PC fluida ed efficiente. Grazie alla facile risoluzione con un clic dei comuni problemi di Windows, Reimage è l'applicazione indispensabile per chiunque desideri mantenere il proprio computer in ottime condizioni.

  • Fase 1: scarica e installa il software Reimage
  • Fase 2: avvia il programma e seleziona la tua lingua
  • Passaggio 3: segui le istruzioni sullo schermo per avviare una scansione del tuo computer alla ricerca di problemi

  • Ho provato la tua mano su (Boost è già in un ottimo linker e nel mio percorso predefinito e non ho bisogno di specificare il loro linker e le posizioni, solo un numero di nomi di archivio) e ha funzionato per quanto mi riguarda:

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

    Ho fatto come mostrato inizialmente e ho riscontrato l’errore preciso come hai fatto tu.

    In alternativa, puoi farlo su base personale (e più ovviamente, vuoi comunque che tu possa trarne vantaggio se le aziende hanno più di un file materiale principale) suddividendo i passaggi di compilazione della connessione in questo modo:

    – p>
    boost con cautela errore linker thread

      g ++ -c -Wall -o test.o test.cppg ++ test.o -u piccolo esempio -lboost_system -lboost_thread 

    Il

    -c nella riga prima di ogni altro elemento dice a g++ di associare semplicemente l’oggetto di compilazione, non di ridurre.

    Ripara il tuo computer ora. Non sono richieste competenze tecniche. Scarica ora.

    Boost Thread Linker Error
    Boost Thread Linker Fout
    부스트 스레드 링커 오류
    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

    You may also like...