2013-04-27 19 views
5

ho sviluppato con CentOS, Qt 4.7 e GCC 4.4errore del linker: undefined reference to simbolo 'pthread_rwlock_trywrlock @@ GLIBC_2.2.5'

Ho appena installato Red Hat Developer Toolset 1.1 che include GCC 4.7 0,2, e alla fine del make, ottengo un errore

/usr/bin/ld: ../../bin/Solo: undefined reference to symbol '[email protected]@GLIBC_2.2.5' 
/usr/bin/ld: note: '[email protected]@GLIBC_2.2.5' is defined in DSO /lib64/libpthread.so.0 so try adding it to the linker command line 
/lib64/libpthread.so.0: could not read symbols: Invalid operation 
collect2: error: ld returned 1 exit status 

sto indovinando che le discussioni Qt fa riferimento a questo. Come posso ripararlo?

+0

La riga di comando per il compilatore/linker contiene '-pthread'? –

risposta

14

vuoi compilare con -pthread che non si limita a creare un collegamento con libpthread:

Adds support for multithreading with the pthreads library. This option sets flags for both the preprocessor and linker.

4

leggere la nota: provare ad aggiungere /lib64/libpthread.so.0 in Makefile (-lpthread dopo gcc di comando, o /lib64/libpthread.so.0 dopo ld (o dopo gcc -shared)), o qualcosa di simile LIB += -lpthread se c'è tale definizione da qualche parte.

Consulta anche: Adding external library into Qt Creator project e http://www.qtcentre.org/threads/39144-How-to-add-a-lib-to-a-qt-project

Btw, inviare un vostro Makefile, in modo che qualcuno sarà in grado di indicare la linea esatta.

3

Hai solo bisogno di aggiungere CONFIG += thread al file .pro.

0

Nel mio piccolo laptop Linux (dove ho un miscuglio di biblioteche), ho solo dovuto aggiungere

LDFLAGS=-lpthread 

ALLA FINE degli argomenti del comando configure.

Dopo, fare ha fatto il suo lavoro perfettamente (con le librerie esistenti).

Problemi correlati