Pregunta

Mi env Windows8.1 (64 bits) y el uso de Visual Studio 2010.

Me hizo poner a todos *.los archivos dll en la carpeta system32 , SYSWOW64(porque yo uso win8 de 64 bits.)

y la ubicación del enlace en donde *.archivo lib para sistemas de 64-sistema con VC de 2010.

por supuesto, puedo añadir más de la carpeta lib forders.., incluir carpetas..etc..

pero cuando intento compilar "pthread-usados" del proyecto, fatal error ha ocurrido.

-fuente

#include<pthread.h>
#include<stdio.h>
int doit_id,trd_id;
pthread_t trd;
void *doit(void *data){
    doit_id = (int)data;
    return 0;
}
int main(){
    trd_id=pthread_create(&trd,NULL,doit,0);
    return (0);
}

-error

1.obj : error LNK2019: unresolved external symbol __imp__pthread_create (referenced in function _main)
C:\Users\~program Location~ : fatal error LNK1120: 1 unresolved externals

por favor,me ayudan

¿Fue útil?

Solución

El hecho de que su main() está buscando el nombre __imp__pthread_create indica que usted está construyendo su proyecto para una de 32 bits de destino.

El de 64 bits Win32 biblioteca pthread tiene un símbolo de importación para pthread_create() con el nombre de:

__imp_pthread_create

El de 32 bits Win32 biblioteca pthread tiene:

__imp__pthread_create

Note el carácter de subrayado en el de 32 bits lib - que coincide con el nombre de convención de que su main() está buscando, por lo que es una indicación de que usted está construyendo para una de 32 bits de destino.El extra subrayado es parte de la forma x86 construye el tratamiento de nombres en el cdecl convención de llamada utilizada por el Win32 biblioteca pthread.x64 no utilizar un cdecl de la convención de llamada (x64 solo tiene una convención de llamada) y guiones bajos no se antepone a los símbolos en x64 construye.

Creo que usted necesita para descargar o construir el de 32 bits biblioteca pthread o cambiar la configuración del proyecto para construir un sistema de 64-bits de destino.

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top