Programación General > Visual C++
C++ Con Dll De Fortran
Eternal Idol:
Eso de Add-Files no sirve y como decis tenes que cambiar las opciones del proyecto para que use el .lib en el enlazado:
Properties>>Linker>>Input>>Additional Dependencies
LauraDiaz:
Entonces,
acabo de añadir en "Project-Settings-Link-Input" en "aditional library path" la ruta a mis binarios de fortran, y en object/library modules el nombre del fichero .lib
Sería eso suficiente? Porque sigo teniendo el mismo error.
Lo que no me queda entonces claro es: hay que añadir ficheros al proyecto con el Project-Add files? o no? el lib ya incluye todos los obj? o añado el dll y el .lib en el las opciones de "linkado"?
gracias y un saludo!
Laura.
Eternal Idol:
El error puede deberse a muchas cosas. Para enlazar estaticamente unicamente necesitas el archivo de importacion (.lib).
No estaria mal que comprobaras las funciones exportadas con el Dependency Walker. Copialas aca de paso.
Por ejemplo aca estas buscando esta: _tuwhbv y tal vez sea tuwhbv o _tuwhbv@4, vaya uno a saber.
LauraDiaz:
Pues ya estaba usando el PE explorer y al igual que ahora con el Dependency Walker veo, que elúnico método expuesto en la libreria se llama tuwhbv. Es el mismo nombre que utilizo desde el código de C++. No se porque el mensaje del "linker" agrega el "_"
Ahora mismo tengo en el proyecto de VS, agregado el .lib. En el link-Input he añadido el directorio y el la lista de *.lib he añadido el mio. Obtengo el mismo "unresolved external symbol"
No se si el problema esta en el .lib y en la forma en que ha sido creado, quizás el que me ha pasado la libreria deberia compilar en fortran con alguna configuración concreta. He leido algo sobre compilar con "single threading o multiple" no se si puede ir por ahí la cosa. No se como comprobar que mi proyecto encuentra o no la librería y que el error esta en encontrarla o con el método en sí. Alguna idea de como puedo probar esto?
gracias de nuevo :)
Laura.
Eternal Idol:
El enlazador trata de decorar el nombre con _ como toda funcion de C, para ver que lleva el .lib usa dumpbin /all archivo.lib y de paso copianos el resultado. Es posible que tenga que exportar la funcion con algunos modificadores especiales o que termine usando la decoracion (_).
"single threading o multiple" no tiene nada que ver.
Navegación
[#] Página Siguiente
[*] Página Anterior
Ir a la versión completa