|
From: Soren A. <so...@wo...> - 2000-11-26 01:47:58
|
Hello,
I know the users want to discuss other things. Still, I will report
this: after two messages the important info that I'd better have a very
recent ld.exe & gcc.exe finally got through to me, so i have them (as
such:
GNU ld version 19990818 (with BFD 19990818)
gcc version 2.95.2 19991024 (release)
I am *still* not able to link the sample apps that are part of the
package jpeg-6.0b. To the interface lib `libjpeg_dll.a', that is. I get
an error that makes NO sense at all if I try to use the
#define GLOBAL(type) __declspec(dllimport) *type*
syntax for the macro.
[this]:
--- console dump -----
../rdppm.c: In function `jinit_read_ppm':
../rdppm.c:444: function `jinit_read_ppm' definition is marked dllimport
make: *** [rdppm.o] Error 1
---- end dump ---------
If I just leave it out when building the apps I get this message:
--- console dump -----
D:\MingW32\gcc-2.95.2\bin\..\lib\gcc-lib\i386-
mingw32msvc\2.95.2\..\..\..\..\i386-
mingw32msvc\lib\libmsvcrt.a(ds222.o)(.idata$5+0x0): multiple definition
of `_imp___iob'
.\libjpeg_dll.a(d000001.o)(.idata$5+0x0): first defined here
make: *** [cjpeg.exe] Error 1
---- end dump ---------
In other words if it seems I am doing it right, with the right gcc at last, *gcc
tells me I am doing it right and then FAILS!*
I have extra info here. When I *do not* use the __declspec(...) macro but
just leave it marked as extern (No, I don't know why that would work, but
this is a black box to me anyway, so it isn't amazingly strange that I tried),
I get this *cref* table with the right flag to `ld' (that is, "here's where my
stuff is located"):
----------------------------------------------------------------------------
ld linking cref map generated on Sat Nov 25 20:33:01 EST 2000 (UTC -0500)
----------------------------------------------------------------------------
$ i386-mingw32msvc-gcc.exe -O2 -I. -I.. -Wundef -DUSE_DLL -c ../cjpeg.c -o cjpeg.o
i386-mingw32msvc-gcc.exe -O2 -I. -I.. -Wundef -DUSE_DLL -c ../rdppm.c -o rdppm.o
i386-mingw32msvc-gcc.exe -O2 -I. -I.. -Wundef -DUSE_DLL -c ../rdgif.c -o rdgif.o
i386-mingw32msvc-gcc.exe -O2 -I. -I.. -Wundef -DUSE_DLL -c ../rdtarga.c -o rdtarga.o
i386-mingw32msvc-gcc.exe -O2 -I. -I.. -Wundef -DUSE_DLL -c ../rdrle.c -o rdrle.o
i386-mingw32msvc-gcc.exe -O2 -I. -I.. -Wundef -DUSE_DLL -c ../rdbmp.c -o rdbmp.o
i386-mingw32msvc-gcc.exe -O2 -I. -I.. -Wundef -DUSE_DLL -c ../rdswitch.c -o rdswitch.o
i386-mingw32msvc-gcc.exe -O2 -I. -I.. -Wundef -DUSE_DLL -c ../cdjpeg.c -o cdjpeg.o
i386-mingw32msvc-gcc.exe -Wall -s -L. -Wl,-cref -o cjpeg.exe cjpeg.o rdppm.o rdgif.o rdtarga.o rdrle.o rdbmp.o rdswitch.o cdjpeg.o \
-ljpeg_dll
Cross Reference Table
"<prefix>" is:
D:\MingW32\gcc-2.95.2\bin\..\lib\gcc-lib\i386-mingw32msvc\2.95.2\..\..\..\..\i386-mingw32msvc\lib
Symbol File
------ ----
ExitProcess@4 <prefix>/lib/libkernel32.a(ds123.o)
<prefix>/lib/crt2.o
SetUnhandledExceptionFilter@4 <prefix>/lib/libkernel32.a(ds633.o)
<prefix>/lib/crt2.o
WinMainCRTStartup <prefix>/lib/crt2.o
_CRT_fmode <prefix>/lib/libmingw32.a(CRTfmode.o)
<prefix>/lib/crt2.o
_CRT_glob <prefix>/lib/libmingw32.a(CRTglob.o)
<prefix>/lib/crt2.o
__CTOR_LIST__ D:\MingW32\gcc-2.95.2\bin\..\lib\gcc-lib\i386-mingw32msvc\2.95.2\libgcc.a(_ctors.o.c)
<prefix>/lib/libmingw32.a(gccmain.o)
__DTOR_LIST__ D:\MingW32\gcc-2.95.2\bin\..\lib\gcc-lib\i386-mingw32msvc\2.95.2\libgcc.a(_ctors.o.c)
<prefix>/lib/libmingw32.a(gccmain.o)
__do_global_ctors <prefix>/lib/libmingw32.a(gccmain.o)
__do_global_dtors <prefix>/lib/libmingw32.a(gccmain.o)
__getmainargs <prefix>/lib/libmsvcrt.a(ds39.o)
<prefix>/lib/crt2.o
__imp_ExitProcess@4 <prefix>/lib/libkernel32.a(ds123.o)
__imp_SetUnhandledExceptionFilter@4 <prefix>/lib/libkernel32.a(ds633.o)
__imp___getmainargs <prefix>/lib/libmsvcrt.a(ds39.o)
__imp___p__environ <prefix>/lib/libmsvcrt.a(ds59.o)
__imp___set_app_type <prefix>/lib/libmsvcrt.a(ds78.o)
__imp__cexit <prefix>/lib/libmsvcrt.a(ds118.o)
__imp__fileno <prefix>/lib/libmsvcrt.a(ds169.o)
__imp__fmode <prefix>/lib/libmsvcrt.a(ds178.o)
__imp__fpreset <prefix>/lib/libmsvcrt.a(ds181.o)
__imp__iob <prefix>/lib/libmsvcrt.a(ds222.o)
__imp__setmode <prefix>/lib/libmsvcrt.a(ds373.o)
__imp_atexit <prefix>/lib/libmsvcrt.a(ds517.o)
__imp_exit <prefix>/lib/libmsvcrt.a(ds531.o)
__imp_fclose <prefix>/lib/libmsvcrt.a(ds534.o)
__imp_fflush <prefix>/lib/libmsvcrt.a(ds537.o)
__imp_fileno <prefix>/lib/libmoldname.a(ds27.o)
__imp_fopen <prefix>/lib/libmsvcrt.a(ds545.o)
__imp_fprintf <prefix>/lib/libmsvcrt.a(ds546.o)
__imp_fread <prefix>/lib/libmsvcrt.a(ds551.o)
__imp_getc <prefix>/lib/libmsvcrt.a(ds562.o)
__imp_isdigit <prefix>/lib/libmsvcrt.a(ds573.o)
__imp_isspace <prefix>/lib/libmsvcrt.a(ds579.o)
__imp_isupper <prefix>/lib/libmsvcrt.a(ds580.o)
__imp_memcpy <prefix>/lib/libmsvcrt.a(ds609.o)
__imp_setmode <prefix>/lib/libmoldname.a(ds62.o)
__imp_signal <prefix>/lib/libmsvcrt.a(ds633.o)
__imp_sscanf <prefix>/lib/libmsvcrt.a(ds639.o)
__imp_tolower <prefix>/lib/libmsvcrt.a(ds669.o)
__imp_ungetc <prefix>/lib/libmsvcrt.a(ds673.o)
__main <prefix>/lib/libmingw32.a(gccmain.o)
cjpeg.o
__p__environ <prefix>/lib/libmsvcrt.a(ds59.o)
<prefix>/lib/crt2.o
__set_app_type <prefix>/lib/libmsvcrt.a(ds78.o)
_argc <prefix>/lib/crt2.o
_argv <prefix>/lib/crt2.o
_cexit <prefix>/lib/libmsvcrt.a(ds118.o)
<prefix>/lib/crt2.o
_fileno <prefix>/lib/libmsvcrt.a(ds169.o)
<prefix>/lib/crt2.o
_fmode <prefix>/lib/libmsvcrt.a(ds178.o)
_fpreset <prefix>/lib/libmsvcrt.a(ds181.o)
<prefix>/lib/crt2.o
_head_libjpeg_dll .\libjpeg_dll.a(d000000.o)
.\libjpeg_dll.a(d000038.o)
.\libjpeg_dll.a(d000083.o)
.\libjpeg_dll.a(d000076.o)
.\libjpeg_dll.a(d000087.o)
.\libjpeg_dll.a(d000088.o)
.\libjpeg_dll.a(d000092.o)
.\libjpeg_dll.a(d000033.o)
.\libjpeg_dll.a(d000084.o)
.\libjpeg_dll.a(d000044.o)
.\libjpeg_dll.a(d000093.o)
.\libjpeg_dll.a(d000089.o)
.\libjpeg_dll.a(d000101.o)
.\libjpeg_dll.a(d000052.o)
.\libjpeg_dll.a(d000046.o)
.\libjpeg_dll.a(d000001.o)
_head_libkernel32_a <prefix>/lib/libkernel32.a(dh.o)
<prefix>/lib/libkernel32.a(ds123.o)
<prefix>/lib/libkernel32.a(ds633.o)
_head_libmoldname_a <prefix>/lib/libmoldname.a(dh.o)
<prefix>/lib/libmoldname.a(ds62.o)
<prefix>/lib/libmoldname.a(ds27.o)
_head_libmsvcrt_a <prefix>/lib/libmsvcrt.a(dh.o)
<prefix>/lib/libmsvcrt.a(ds517.o)
<prefix>/lib/libmsvcrt.a(ds537.o)
<prefix>/lib/libmsvcrt.a(ds580.o)
<prefix>/lib/libmsvcrt.a(ds669.o)
<prefix>/lib/libmsvcrt.a(ds579.o)
<prefix>/lib/libmsvcrt.a(ds573.o)
<prefix>/lib/libmsvcrt.a(ds609.o)
<prefix>/lib/libmsvcrt.a(ds551.o)
<prefix>/lib/libmsvcrt.a(ds562.o)
<prefix>/lib/libmsvcrt.a(ds673.o)
<prefix>/lib/libmsvcrt.a(ds546.o)
<prefix>/lib/libmsvcrt.a(ds531.o)
<prefix>/lib/libmsvcrt.a(ds639.o)
<prefix>/lib/libmsvcrt.a(ds545.o)
<prefix>/lib/libmsvcrt.a(ds534.o)
<prefix>/lib/libmsvcrt.a(ds222.o)
<prefix>/lib/libmsvcrt.a(ds39.o)
<prefix>/lib/libmsvcrt.a(ds373.o)
<prefix>/lib/libmsvcrt.a(ds169.o)
<prefix>/lib/libmsvcrt.a(ds633.o)
<prefix>/lib/libmsvcrt.a(ds181.o)
<prefix>/lib/libmsvcrt.a(ds59.o)
<prefix>/lib/libmsvcrt.a(ds118.o)
<prefix>/lib/libmsvcrt.a(ds78.o)
<prefix>/lib/libmsvcrt.a(ds178.o)
_imp__ExitProcess@4 <prefix>/lib/libkernel32.a(ds123.o)
_imp__SetUnhandledExceptionFilter@4 <prefix>/lib/libkernel32.a(ds633.o)
_imp____getmainargs <prefix>/lib/libmsvcrt.a(ds39.o)
_imp____p__environ <prefix>/lib/libmsvcrt.a(ds59.o)
_imp____set_app_type <prefix>/lib/libmsvcrt.a(ds78.o)
<prefix>/lib/crt2.o
_imp___cexit <prefix>/lib/libmsvcrt.a(ds118.o)
_imp___fileno <prefix>/lib/libmsvcrt.a(ds169.o)
_imp___fmode <prefix>/lib/libmsvcrt.a(ds178.o)
<prefix>/lib/crt2.o
_imp___fpreset <prefix>/lib/libmsvcrt.a(ds181.o)
_imp___iob <prefix>/lib/libmsvcrt.a(ds222.o)
.\libjpeg_dll.a(d000001.o)
<prefix>/lib/crt2.o
_imp___setmode <prefix>/lib/libmsvcrt.a(ds373.o)
_imp__atexit <prefix>/lib/libmsvcrt.a(ds517.o)
_imp__exit <prefix>/lib/libmsvcrt.a(ds531.o)
_imp__fclose <prefix>/lib/libmsvcrt.a(ds534.o)
_imp__fflush <prefix>/lib/libmsvcrt.a(ds537.o)
_imp__fileno <prefix>/lib/libmoldname.a(ds27.o)
_imp__fopen <prefix>/lib/libmsvcrt.a(ds545.o)
_imp__fprintf <prefix>/lib/libmsvcrt.a(ds546.o)
_imp__fread <prefix>/lib/libmsvcrt.a(ds551.o)
_imp__getc <prefix>/lib/libmsvcrt.a(ds562.o)
_imp__isdigit <prefix>/lib/libmsvcrt.a(ds573.o)
_imp__isspace <prefix>/lib/libmsvcrt.a(ds579.o)
_imp__isupper <prefix>/lib/libmsvcrt.a(ds580.o)
_imp__jpeg_CreateCompress .\libjpeg_dll.a(d000033.o)
_imp__jpeg_add_quant_table .\libjpeg_dll.a(d000038.o)
_imp__jpeg_default_colorspace .\libjpeg_dll.a(d000044.o)
_imp__jpeg_destroy_compress .\libjpeg_dll.a(d000046.o)
_imp__jpeg_finish_compress .\libjpeg_dll.a(d000052.o)
_imp__jpeg_quality_scaling .\libjpeg_dll.a(d000076.o)
_imp__jpeg_set_colorspace .\libjpeg_dll.a(d000083.o)
_imp__jpeg_set_defaults .\libjpeg_dll.a(d000084.o)
_imp__jpeg_set_quality .\libjpeg_dll.a(d000087.o)
_imp__jpeg_simple_progression .\libjpeg_dll.a(d000088.o)
_imp__jpeg_start_compress .\libjpeg_dll.a(d000089.o)
_imp__jpeg_std_error .\libjpeg_dll.a(d000092.o)
_imp__jpeg_stdio_dest .\libjpeg_dll.a(d000093.o)
_imp__jpeg_write_scanlines .\libjpeg_dll.a(d000101.o)
_imp__memcpy <prefix>/lib/libmsvcrt.a(ds609.o)
_imp__setmode <prefix>/lib/libmoldname.a(ds62.o)
_imp__signal <prefix>/lib/libmsvcrt.a(ds633.o)
_imp__sscanf <prefix>/lib/libmsvcrt.a(ds639.o)
_imp__tolower <prefix>/lib/libmsvcrt.a(ds669.o)
_imp__ungetc <prefix>/lib/libmsvcrt.a(ds673.o)
_iob <prefix>/lib/libmsvcrt.a(ds222.o)
cdjpeg.o
rdswitch.o
rdgif.o
cjpeg.o
_libkernel32_a_iname <prefix>/lib/libkernel32.a(dt.o)
<prefix>/lib/libkernel32.a(dh.o)
_libmoldname_a_iname <prefix>/lib/libmoldname.a(dt.o)
<prefix>/lib/libmoldname.a(dh.o)
_libmsvcrt_a_iname <prefix>/lib/libmsvcrt.a(dt.o)
<prefix>/lib/libmsvcrt.a(dh.o)
_setmode <prefix>/lib/libmsvcrt.a(ds373.o)
<prefix>/lib/crt2.o
atexit <prefix>/lib/libmsvcrt.a(ds517.o)
<prefix>/lib/libmingw32.a(gccmain.o)
end_progress_monitor cdjpeg.o
cjpeg.o
exit <prefix>/lib/libmsvcrt.a(ds531.o)
rdgif.o
cjpeg.o
fclose <prefix>/lib/libmsvcrt.a(ds534.o)
rdswitch.o
cjpeg.o
fflush <prefix>/lib/libmsvcrt.a(ds537.o)
cdjpeg.o
fileno <prefix>/lib/libmoldname.a(ds27.o)
cdjpeg.o
fopen <prefix>/lib/libmsvcrt.a(ds545.o)
rdswitch.o
cjpeg.o
fprintf <prefix>/lib/libmsvcrt.a(ds546.o)
cdjpeg.o
rdswitch.o
rdgif.o
cjpeg.o
fread <prefix>/lib/libmsvcrt.a(ds551.o)
rdbmp.o
rdtarga.o
rdppm.o
getc <prefix>/lib/libmsvcrt.a(ds562.o)
rdswitch.o
rdbmp.o
rdtarga.o
rdppm.o
cjpeg.o
isdigit <prefix>/lib/libmsvcrt.a(ds573.o)
rdswitch.o
isspace <prefix>/lib/libmsvcrt.a(ds579.o)
rdswitch.o
isupper <prefix>/lib/libmsvcrt.a(ds580.o)
cdjpeg.o
jinit_read_bmp rdbmp.o
cjpeg.o
jinit_read_gif rdgif.o
cjpeg.o
jinit_read_ppm rdppm.o
cjpeg.o
jinit_read_targa rdtarga.o
cjpeg.o
jpeg_CreateCompress .\libjpeg_dll.a(d000033.o)
cjpeg.o
jpeg_add_quant_table .\libjpeg_dll.a(d000038.o)
rdswitch.o
jpeg_default_colorspace .\libjpeg_dll.a(d000044.o)
cjpeg.o
jpeg_destroy_compress .\libjpeg_dll.a(d000046.o)
cjpeg.o
jpeg_finish_compress .\libjpeg_dll.a(d000052.o)
cjpeg.o
jpeg_quality_scaling .\libjpeg_dll.a(d000076.o)
cjpeg.o
jpeg_set_colorspace .\libjpeg_dll.a(d000083.o)
cjpeg.o
jpeg_set_defaults .\libjpeg_dll.a(d000084.o)
cjpeg.o
jpeg_set_quality .\libjpeg_dll.a(d000087.o)
cjpeg.o
jpeg_simple_progression .\libjpeg_dll.a(d000088.o)
cjpeg.o
jpeg_start_compress .\libjpeg_dll.a(d000089.o)
cjpeg.o
jpeg_std_error .\libjpeg_dll.a(d000092.o)
cjpeg.o
jpeg_stdio_dest .\libjpeg_dll.a(d000093.o)
cjpeg.o
jpeg_write_scanlines .\libjpeg_dll.a(d000101.o)
cjpeg.o
keymatch cdjpeg.o
cjpeg.o
libjpeg_dll_iname .\libjpeg_dll.a(d000105.o)
.\libjpeg_dll.a(d000000.o)
main cjpeg.o
<prefix>/lib/crt2.o
mainCRTStartup <prefix>/lib/crt2.o
memcpy <prefix>/lib/libmsvcrt.a(ds609.o)
rdswitch.o
read_quant_tables rdswitch.o
cjpeg.o
read_scan_script rdswitch.o
cjpeg.o
read_stdin cdjpeg.o
cjpeg.o
set_quant_slots rdswitch.o
cjpeg.o
set_sample_factors rdswitch.o
cjpeg.o
setmode <prefix>/lib/libmoldname.a(ds62.o)
cdjpeg.o
signal <prefix>/lib/libmsvcrt.a(ds633.o)
<prefix>/lib/crt2.o
sscanf <prefix>/lib/libmsvcrt.a(ds639.o)
rdswitch.o
cjpeg.o
start_progress_monitor cdjpeg.o
cjpeg.o
tolower <prefix>/lib/libmsvcrt.a(ds669.o)
cdjpeg.o
ungetc <prefix>/lib/libmsvcrt.a(ds673.o)
rdswitch.o
cjpeg.o
write_stdout cdjpeg.o
cjpeg.o
------------------------------------------------------------------
**thanks**,
soren andersen
|