pasar librerias de .dll a .a
Publicado por Soforo (5 intervenciones) el 07/05/2007 17:42:52
Hola a todos:
Intento convertir una libreria .dll echa en Visual C++ 6.0 a una libreria .a que pueda linkar con el compilador gcc en cygwin.
Lo he intentado de dos formas
1))Sacado de "http://www.cygwin.com/cygwin-ug-net/dll.html"
echo EXPORTS > foo.def
nm foo.dll | grep ' T _' | sed 's/.* T _//' >> foo.def
donde foo es el nombre de la libreria en cuestion
Aqui me sale el mensaje de error: "nm: foo.dll: no symbols" y según la página que lo he sacado eso es porque la dll "is stripped" (ni idea de que quiere decir esto). la siguiente instrucción sería:
dlltool --def foo.def --dllname foo.dll --output-lib foo.a
2))sacado de "http://www.mingw.org/MinGWiki/index.php/MSVC-MinGW-DLL"
"The right way is to produce the DEF file using the pexports tool included in the mingw-utils package and filter off the first underscore by sed:"
pexports testdll.dll | sed "s/^_//" > testdll.def
Then, when using dlltool to produce the import library, add `-U' to the command line:
dlltool -U -d testdll.def -l libtestdll.a
And now, you can proceed in the usual way:
gcc -o testmain testmain.c -L. -ltestdll
Pero en testmain.c me da error al no reconocer la función que exporto con la .dll. le pone un guion bajo delante.
Es posible que sea por los guiones bajos que añade Visual C antes de las funciones??
Alguien ha hecho algo parecido y me puede aconsejar??
Muchas gracias
Intento convertir una libreria .dll echa en Visual C++ 6.0 a una libreria .a que pueda linkar con el compilador gcc en cygwin.
Lo he intentado de dos formas
1))Sacado de "http://www.cygwin.com/cygwin-ug-net/dll.html"
echo EXPORTS > foo.def
nm foo.dll | grep ' T _' | sed 's/.* T _//' >> foo.def
donde foo es el nombre de la libreria en cuestion
Aqui me sale el mensaje de error: "nm: foo.dll: no symbols" y según la página que lo he sacado eso es porque la dll "is stripped" (ni idea de que quiere decir esto). la siguiente instrucción sería:
dlltool --def foo.def --dllname foo.dll --output-lib foo.a
2))sacado de "http://www.mingw.org/MinGWiki/index.php/MSVC-MinGW-DLL"
"The right way is to produce the DEF file using the pexports tool included in the mingw-utils package and filter off the first underscore by sed:"
pexports testdll.dll | sed "s/^_//" > testdll.def
Then, when using dlltool to produce the import library, add `-U' to the command line:
dlltool -U -d testdll.def -l libtestdll.a
And now, you can proceed in the usual way:
gcc -o testmain testmain.c -L. -ltestdll
Pero en testmain.c me da error al no reconocer la función que exporto con la .dll. le pone un guion bajo delante.
Es posible que sea por los guiones bajos que añade Visual C antes de las funciones??
Alguien ha hecho algo parecido y me puede aconsejar??
Muchas gracias
Valora esta pregunta


0