Problemas que me he encontrado:
- Errores del tipo:
main.obj : error LNK2019: unresolved external symbol __imp_ttsDeleteInstance referenced in function main
main.obj : error LNK2019: unresolved external symbol __imp_ttsRead referenced in function main
(...)
Parece que no encuentra la librería para enlazar, a pesar de que está indicado en las propiedades del proyecto el directorio donde residen (Tools -> Options -> Directories). Dejan de producirse incluyendo en el código la siguiente línea:
#pragma comment(lib, "LoqTTS6.lib")que especifica la librería concreta con la que quiero que se linke.
- Error del tipo:
corelibc.lib(pegwmain.obj) : error LNK2019: unresolved external symbol WinMain referenced in function WinMainCRTStartup
Que se soluciona en Project -> Settings -> Link -> Output, y cambiando el Entry-point symbol del valor WinMainCRTStartup a simplemente main
- Error del tipo:
LoqTTS6.lib(LoqTTS6.dll) : fatal error LNK1112: module machine type 'THUMB' conflicts with target machine type 'ARM'
Este ha sido más peliagudo. He encontrado esta página de un foro de Microsoft donde lo aclara un poco, abajo del todo dice esto:
You need to look at all of your compiler and linker inputs and outputs, and figure out whether you are being consistent in your code generation. Keep in mind that:
* PPC 2003 is ARMV4 --> linker switch/machine type = ARM
* PPC 5.0 is ARMV4I --> linker switch/machine type = THUMB
You can't mix and match compiled binaries for each platform. Thanks,
Así que, por probar, he ido de nuevo a Project -> Settings -> Link -> Output y en el cuadro de abajo donde sale la línea de comando del linker (Project Options) he buscado el parámetro /MACHINE y sustituido ARMV4 por THUMB. EDITADO:¡MAL HECHO!.
Después de eso el programa de prueba se puede construir (compilación + linkado) correctamente. La versión de la librería no se puede ejecutar en el emulador, así que copio el ejecutable a una PDA real. Lo lanzo y... error, dice que no es una aplicación para PocketPC válida.
Parece pues que la diferencia entre ARMV4 y ARMV4I es mucha, yo pensaba que no. Eso, o que me he pasado de listo al forzar la compilación. Creo que miraré a ver si hay alguna versión de la librería para ARMV4 "a secas".

No hay comentarios:
Publicar un comentario