2011-04-22 7 views
5

Vengo de Xcode, tratando de compilar un proyecto en Visual Studio 2010, y consigo los siguientes errores:símbolos externos no resueltos en Visual Studio 2010

2>ofxCLeye.obj : error LNK2019: unresolved external symbol "struct _GUID __cdecl CLEyeGetCameraUUID(int)" ([email protected]@[email protected]@[email protected]) referenced in function "public: static int __cdecl ofxCLeye::listDevices(void)" ([email protected]@@SAHXZ) 
2>ofxCLeye.obj : error LNK2019: unresolved external symbol "int __cdecl CLEyeGetCameraCount(void)" ([email protected]@YAHXZ) referenced in function "public: static int __cdecl ofxCLeye::listDevices(void)" ([email protected]@@SAHXZ) 
2>ofxCLeye.obj : error LNK2019: unresolved external symbol "bool __cdecl CLEyeCameraGetFrameDimensions(void *,int &,int &)" ([email protected]@[email protected]) referenced in function "public: void __thiscall ofxCLeye::grabFrame(void)" ([email protected]@@QAEXXZ) 
2>ofxCLeye.obj : error LNK2019: unresolved external symbol "bool __cdecl CLEyeCameraGetFrame(void *,unsigned char *,int)" ([email protected]@[email protected]) referenced in function "public: void __thiscall ofxCLeye::grabFrame(void)" ([email protected]@@QAEXXZ) 
2>ofxCLeye.obj : error LNK2019: unresolved external symbol "bool __cdecl CLEyeDestroyCamera(void *)" ([email protected]@[email protected]) referenced in function "public: virtual void __thiscall ofxCLeye::close(void)" ([email protected]@@UAEXXZ) 
2>ofxCLeye.obj : error LNK2019: unresolved external symbol "bool __cdecl CLEyeCameraStop(void *)" ([email protected]@[email protected]) referenced in function "public: virtual void __thiscall ofxCLeye::close(void)" ([email protected]@@UAEXXZ) 
... etc etc... 
2>bin\clEye_debug.exe : fatal error LNK1120: 10 unresolved externals 

Imagino que el compilador está tratando de vincular CLEyeMulticam.lib pero no lo encuentra. Creo que lo he configurado correctamente.

¿Podría indicarme los pasos necesarios para incluir una biblioteca en VS2010?

Gracias,

Marc

+0

¿Es 'CLEyeMulticam.lib' un archivo que tiene por ahí o debería haber sido creado por VS2010? – quamrana

Respuesta

10

Disculpas si esto es excesivamente pedante. Si se trata de una biblioteca de pre-construidos (no construido como parte del proyecto/solución) a continuación, asegúrese

a) #include the correct header 
b) #define any requisite macros 
c) speciy additional .lib dependencies as shown below. 

enter image description here

Tendrá que especificar una ruta totalmente qualifed (d: \ src \ project \ libs \ camera.lib) a menos que el archivo libary esté en la variable de entorno LIB.

+0

+1: pero no es necesario que la ruta esté totalmente calificada si agrega su directorio libs a Directorios de inclusión adicionales, agrega la ruta con hojas de propiedades, agrega ruta con variable de entorno o usa rutas relativas desde su directorio de proyecto. – AJG85

+0

Exactamente lo que hice, pero sigo recibiendo los errores. Algo más debe estar mal. Gracias de todos modos – Marc

+1

Marc, ¿la biblioteca exporta una interfaz C o C++? Si está tratando de vincular una biblioteca 'C' (que supongo que es el caso de los nombres de API) con código C++, entonces la manipulación de nombres está causando los errores de enlace. En el archivo de cabecera de la biblioteca, compruebe que todas las funciones de la biblioteca estén encerradas en un bloque externo "C" {}. –

2

En las páginas de propiedades para su proyecto, vaya a Configuración> Enlazador> Entrada y agregar el archivo lib a la configuración Dependencias adicionales. Esto se aplica a VC++ 2008, probablemente también a 2010.

Cuestiones relacionadas