Mail Archives: cygwin/1999/01/22/18:36:28
This is a multi-part message in MIME format.
--------------2D9B1EB428533349D97B8589
Content-Type: multipart/alternative;
boundary="------------5F9685F673F044173EEED2FC"
--------------5F9685F673F044173EEED2FC
Content-Type: text/plain; charset=koi8-r
Content-Transfer-Encoding: 7bit
"S. Krishnaprasad" wrote:
> I have useddllwrap --export-all mdll.dll mylib.a -L. -lgmp I get the
> DLL file.But when I try to use it in a Visual C++ application it gives
> me a undefined reference to the functionnames defined in this DLL.I
> created a export .DEF file which is as follows LIBRARY
> <dllname>EXPORTS function1 function2 etc..Then I created a
> import file .lib using dllwrap --dllname <name.dll> --output-lib
> <libname.lib> This created a .lib file
>
> This when linked into a Visual C++ application it compiles and links
> properly but whenI try to run this application it just terminates at
> the function call. Can anybody help me.
Yes. In order to link dll you have to get library file. But you have to
use
LIB.exe program from VisualStudio like that
d:\DevStudio\VC\bin\LIB.EXE /DEF:foo.def
After that you will get foo.lib file.
>This when linked into a Visual C++ application it compiles and links
properly but when
>I try to run this application it just terminates at the function call.
Due to program (as well dll) compiled with cygwin using cygwin1.dll
you can not link it with Visual C++ . In order to get rid cygwin1.dll
you must compile your files with -mno-cygwin option, for example:
gcc -mno-cygwin -c foo.c -o foo.o
gcc -mno-cygwin -c dllinit.c -o dllinit.o
And you must create dll with --target option, for example
dllwrap --target i386-mingw32 -mno-cygwin --dllname foo.dll foo.o
dllinit.o
After that you will get foo.dll file and so you can going to VC.
Note:
At first, you must have something like dllinit.c file (see attachment).
At second, the algorithm described above is suitable only for C, not for
C++
language.
--------------5F9685F673F044173EEED2FC
Content-Type: text/html; charset=koi8-r
Content-Transfer-Encoding: 7bit
<!doctype html public "-//w3c//dtd html 4.0 transitional//en">
<html>
<body bgcolor="#FFFFFF">
<p>"S. Krishnaprasad" wrote:
<blockquote TYPE=CITE> <font color="#000000"><font size=-1>I have
useddllwrap --export-all mdll.dll mylib.a -L. -lgmp</font></font> <font color="#000000"><font size=-1>I
get the DLL file.But when I try to use it in a Visual C++ application it
gives me a undefined reference to the functionnames defined in this DLL.I
created a export .DEF file which is as follows</font></font> <font color="#000000"><font size=-1>LIBRARY
<dllname>EXPORTS</font></font> <font color="#000000"><font size=-1>
function1 function2</font></font> <font color="#000000"><font size=-1>etc..Then
I created a import file .lib using</font></font> <font color="#000000"><font size=-1>dllwrap
--dllname <name.dll> --output-lib <libname.lib></font></font> <font color="#000000"><font size=-1>This
created a .lib file</font></font>
<p> <font color="#000000"><font size=-1>This when linked into a Visual
C++ application it compiles and links properly but whenI try to run this
application it just terminates at the function call.</font></font>
<font color="#000000"><font size=-1>Can
anybody help me.</font></font></blockquote>
Yes. In order to link dll you have to get library file. But you have to
use
<br>LIB.exe program from VisualStudio like that
<br>d:\DevStudio\VC\bin\LIB.EXE /DEF:foo.def
<br>After that you will get foo.lib file.
<p><font color="#000000"><font size=-1>>This when linked into a Visual
C++ application it compiles and links properly but when</font></font>
<br><font color="#000000"><font size=-1>>I try to run this application
it just terminates at the function call.</font></font>
<p>Due to program (as well dll) compiled with cygwin using cygwin1.dll
<br>you can not link it with Visual C++ . In order to get rid cygwin1.dll
<br>you must compile your files with -mno-cygwin option, for example:
<br>gcc -mno-cygwin -c foo.c -o foo.o
<br>gcc -mno-cygwin -c dllinit.c -o dllinit.o
<br>And you must create dll with --target option, for example
<br>dllwrap --target i386-mingw32 -mno-cygwin --dllname foo.dll foo.o dllinit.o
<br>After that you will get foo.dll file and so you can going to VC.
<br>Note:
<br>At first, you must have something like dllinit.c file (see attachment).
<br>At second, the algorithm described above is suitable only for C, not
for C++
<br>language.
</body>
</html>
--------------5F9685F673F044173EEED2FC--
--------------2D9B1EB428533349D97B8589
Content-Type: application/x-unknown-content-type-cfile;
name="dllinit.c"
Content-Transfer-Encoding: base64
Content-Disposition: inline;
filename="dllinit.c"
LyogZGxsaW5pdC5jIC0tIFBvcnRhYmxlIERMTCBpbml0aWFsaXphdGlvbi4gCiAgIENvcHly
aWdodCAoQykgMTk5OCBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb24sIEluYy4KICAgQ29udHJp
YnV0ZWQgYnkgTXVtaXQgS2hhbiAoa2hhbkB4cmF5bGl0aC53aXNjLmVkdSkuCgogICBJJ3Zl
IHVzZWQgRGxsTWFpbiBhcyB0aGUgRExMICJtYWluIiBzaW5jZSB0aGF0J3MgdGhlIG1vc3Qg
Y29tbW9uIAogICB1c2FnZS4gTVNWQyBhbmQgTWluZ3czMiBib3RoIGRlZmF1bHQgdG8gRGxs
TWFpbiBhcyB0aGUgc3RhbmRhcmQKICAgY2FsbGJhY2sgZnJvbSB0aGUgbGlua2VyIGVudHJ5
IHBvaW50LiBDeWd3aW4zMiBiMTkrIHVzZXMgZXNzZW50aWFsbHkgCiAgIHRoZSBzYW1lLCBh
bGJlaXQgc2xpZ2h0bHkgZGlmZmVyZW50bHkgaW1wbGVtZW50ZWQsIHNjaGVtZS4gUGxlYXNl
CiAgIHNlZSBERUNMQVJFX0NZR1dJTl9ETEwgbWFjcm8gaW4gPGN5Z3dpbjMyL2N5Z3dpbl9k
bGwuaD4gZm9yIG1vcmUgCiAgIGluZm8gb24gaG93IEN5Z3dpbjMyIHVzZXMgdGhlIGNhbGxi
YWNrIGZ1bmN0aW9uLgoKICAgVGhlIHJlYWwgZW50cnkgcG9pbnQgaXMgdHlwaWNhbGx5IGFs
d2F5cyBkZWZpbmVkIGJ5IHRoZSBydW50aW1lIAogICBsaWJyYXJ5LCBhbmQgdXN1YWxseSBu
ZXZlciBvdmVycmlkZGVuIGJ5IChjYXN1YWwpIHVzZXIuIFdoYXQgeW91IGNhbiAKICAgb3Zl
cnJpZGUgaG93ZXZlciBpcyB0aGUgY2FsbGJhY2sgcm91dGluZSB0aGF0IHRoZSBlbnRyeSBw
b2ludCBjYWxscywgCiAgIGFuZCB0aGlzIGZpbGUgcHJvdmlkZXMgc3VjaCBhIGNhbGxiYWNr
IGZ1bmN0aW9uLCBEbGxNYWluLgoKICAgTWluZ3czMjogVGhlIGRlZmF1bHQgZW50cnkgcG9p
bnQgZm9yIG1pbmd3MzIgaXMgRGxsTWFpbkNSVFN0YXJ0dXAKICAgd2hpY2ggaXMgZGVmaW5l
ZCBpbiBsaWJtaW5ndzMyLmEgVGhpcyBpbiB0dXJuIGNhbGxzIERsbE1haW4gd2hpY2ggaXMK
ICAgZGVmaW5lZCBoZXJlLiBJZiBub3QgZGVmaW5lZCwgdGhlcmUgaXMgYSBzdHViIGluIGxp
Ym1pbmd3MzIuYSB3aGljaAogICBkb2VzIG5vdGhpbmcuCgogICBDeWd3aW4zMjogVGhlIGRl
ZmF1bHQgZW50cnkgcG9pbnQgZm9yIGN5Z3dpbjMyIGIxOSBvciBuZXdlciBpcwogICBfX2N5
Z3dpbjMyX2RsbF9lbnRyeSB3aGljaCBpcyBkZWZpbmVkIGluIGxpYmN5Z3dpbi5hLiBUaGlz
IGluIHR1cm4KICAgY2FsbHMgdGhlIHJvdXRpbmUgeW91IHN1cHBseSB0byB0aGUgREVDTEFS
RV9DWUdXSU5fRExMIChzZWUgYmVsb3cpCiAgIGFuZCwgZm9yIHRoaXMgZXhhbXBsZSwgSSd2
ZSBjaG9zZSBEbGxNYWluIHRvIGJlIGNvbnNpc3RlbnQgd2l0aCBhbGwKICAgdGhlIG90aGVy
IHBsYXRmb3Jtcy4KCiAgIE1TVkM6IE1TVkMgcnVudGltZSBjYWxscyBEbGxNYWluLCBqdXN0
IGxpa2UgTWluZ3czMi4KCiAgIFN1bW1hcnk6IElmIHlvdSBuZWVkIHRvIGRvIGFueXRoaW5n
IHNwZWNpYWwgaW4gRGxsTWFpbiwganVzdCBhZGQgaXQKICAgaGVyZS4gT3RoZXJ3aXNlLCB0
aGUgZGVmYXVsdCBzZXR1cCBzaG91bGQgYmUganVzdCBmaW5lIGZvciA5OSUrIG9mCiAgIHRo
ZSB0aW1lLiBJIHN0cm9uZ2x5IHN1Z2dlc3QgdGhhdCB5b3UgKm5vdCogY2hhbmdlIHRoZSBl
bnRyeSBwb2ludCwKICAgYnV0IHJhdGhlciBjaGFuZ2UgRGxsTWFpbiBhcyBhcHByb3ByaWF0
ZS4KCiAqLwoKCiNkZWZpbmUgV0lOMzJfTEVBTl9BTkRfTUVBTgojaW5jbHVkZSA8d2luZG93
cy5oPgojdW5kZWYgV0lOMzJfTEVBTl9BTkRfTUVBTgojaW5jbHVkZSA8c3RkaW8uaD4KCkJP
T0wgQVBJRU5UUlkgRGxsTWFpbiAoSElOU1RBTkNFIGhJbnN0LCBEV09SRCByZWFzb24sIAog
ICAgICAgICAgICAgICAgICAgICAgIExQVk9JRCByZXNlcnZlZCAvKiBOb3QgdXNlZC4gKi8g
KTsKCiNpZmRlZiBfX0NZR1dJTjMyX18KCiNpbmNsdWRlIDxjeWd3aW4zMi9jeWd3aW5fZGxs
Lmg+CkRFQ0xBUkVfQ1lHV0lOX0RMTCggRGxsTWFpbiApOwovKiBzYXZlIGhJbnN0YW5jZSBm
cm9tIERsbE1haW4gKi8KSElOU1RBTkNFIF9faERsbEluc3RhbmNlX2Jhc2U7CgojZW5kaWYg
LyogX19DWUdXSU4zMl9fICovCgovKgogKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KICoKICogRGxsTWFp
biAtLQogKgogKglUaGlzIHJvdXRpbmUgaXMgY2FsbGVkIGJ5IHRoZSBNaW5ndzMyLCBDeWd3
aW4zMiBvciBWQysrIEMgcnVuIAogKgl0aW1lIGxpYnJhcnkgaW5pdCBjb2RlLCBvciB0aGUg
Qm9ybGFuZCBEbGxFbnRyeVBvaW50IHJvdXRpbmUuIEl0IAogKglpcyByZXNwb25zaWJsZSBm
b3IgaW5pdGlhbGl6aW5nIHZhcmlvdXMgZHluYW1pY2FsbHkgbG9hZGVkIAogKglsaWJyYXJp
ZXMuCiAqCiAqIFJlc3VsdHM6CiAqICAgICAgVFJVRSBvbiBzdWNlc3MsIEZBTFNFIG9uIGZh
aWx1cmUuCiAqCiAqIFNpZGUgZWZmZWN0czoKICoKICotLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAqLwpC
T09MIEFQSUVOVFJZCkRsbE1haW4gKAoJIEhJTlNUQU5DRSBoSW5zdCAvKiBMaWJyYXJ5IGlu
c3RhbmNlIGhhbmRsZS4gKi8gLAoJIERXT1JEIHJlYXNvbiAvKiBSZWFzb24gdGhpcyBmdW5j
dGlvbiBpcyBiZWluZyBjYWxsZWQuICovICwKCSBMUFZPSUQgcmVzZXJ2ZWQgLyogTm90IHVz
ZWQuICovICkKewoKI2lmZGVmIF9fQ1lHV0lOMzJfXwogIF9faERsbEluc3RhbmNlX2Jhc2Ug
PSBoSW5zdDsKI2VuZGlmIC8qIF9fQ1lHV0lOMzJfXyAqLwoKICBzd2l0Y2ggKHJlYXNvbikK
ICAgIHsKICAgIGNhc2UgRExMX1BST0NFU1NfQVRUQUNIOgogICAgICBicmVhazsKCiAgICBj
YXNlIERMTF9QUk9DRVNTX0RFVEFDSDoKICAgICAgYnJlYWs7CgogICAgY2FzZSBETExfVEhS
RUFEX0FUVEFDSDoKICAgICAgYnJlYWs7CgogICAgY2FzZSBETExfVEhSRUFEX0RFVEFDSDoK
ICAgICAgYnJlYWs7CiAgICB9CiAgcmV0dXJuIFRSVUU7Cn0KCg==
--------------2D9B1EB428533349D97B8589--
-
For help on using this list (especially unsubscribing), send a message to
"gnu-win32-request AT cygnus DOT com" with one line of text: "help".
- Raw text -