[Top][All Lists]
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: GNUSTEP_WITH_DLL and GSObjCRuntime.h
From: |
Leigh Smith |
Subject: |
Re: GNUSTEP_WITH_DLL and GSObjCRuntime.h |
Date: |
Tue, 31 May 2005 22:50:27 +0800 |
If it doesn't build for you, what error are you getting ?
undefined references to gnustep-base functions and methods such as
NSLog. This occurs building any of the Tools, including autogsdoc and
cvtenc. I initially thought it was the GNUSTEP_WITH_DLL setting but
it now looks more like libgnustep-base.dll.a doesn't have any base
symbols, whereas gnustep-base.dll does:
address@hidden /c/msys/1.0/home/leigh/SysDev/gnustep/core/base/Tools
$ make cvtenc
Making all for tool cvtenc...
Linking tool cvtenc ...
./shared_obj/cvtenc.o(.text+0x3dc):cvtenc.m: undefined reference to
`_NSAddHandler'
./shared_obj/cvtenc.o(.text+0x649):cvtenc.m: undefined reference to
`_NSRemoveHandler'
./shared_obj/cvtenc.o(.text+0x68d):cvtenc.m: undefined reference to
`NSLog'
./shared_obj/cvtenc.o(.text+0x6c7):cvtenc.m: undefined reference to
`NSLog'
./shared_obj/cvtenc.o(.text+0x6e2):cvtenc.m: undefined reference to
`NSLog'
./shared_obj/cvtenc.o(.text+0x6fd):cvtenc.m: undefined reference to
`NSLog'
./shared_obj/cvtenc.o(.text+0x729):cvtenc.m: undefined reference to
`__nszone_private_hidden_default_zone'
./shared_obj/cvtenc.o(.text+0x8b0):cvtenc.m: undefined reference to
`__nszone_private_hidden_default_zone'
./shared_obj/cvtenc.o(.text+0xab3):cvtenc.m: undefined reference to
`NSLog'
./shared_obj/cvtenc.o(.text+0xaf3):cvtenc.m: undefined reference to
`__nszone_private_hidden_default_zone'
./shared_obj/cvtenc.o(.text+0xafe):cvtenc.m: undefined reference to
`__nszone_private_hidden_default_zone'
./shared_obj/cvtenc.o(.text+0xb39):cvtenc.m: undefined reference to
`NSLog'
./shared_obj/cvtenc.o(.text+0xb81):cvtenc.m: undefined reference to
`NSLog'
./shared_obj/cvtenc.o(.data+0x214):cvtenc.m: undefined reference to
`__objc_class_name_NSAutoreleasePool'
./shared_obj/cvtenc.o(.data+0x218):cvtenc.m: undefined reference to
`__objc_class_name_NSProcessInfo'
./shared_obj/cvtenc.o(.data+0x21c):cvtenc.m: undefined reference to
`__objc_class_name_NSConstantString'
./shared_obj/cvtenc.o(.data+0x220):cvtenc.m: undefined reference to
`__objc_class_name_NSUserDefaults'
./shared_obj/cvtenc.o(.data+0x224):cvtenc.m: undefined reference to
`__objc_class_name_NSString'
./shared_obj/cvtenc.o(.data+0x228):cvtenc.m: undefined reference to
`__objc_class_name_NSMutableString'
./shared_obj/cvtenc.o(.data+0x22c):cvtenc.m: undefined reference to
`__objc_class_name_NSData'
./shared_obj/cvtenc.o(.data+0x230):cvtenc.m: undefined reference to
`__objc_class_name_NSFileHandle'
collect2: ld returned 1 exit status
make[2]: *** [shared_obj/cvtenc.exe] Error 1
make[1]: *** [cvtenc.all.tool.variables] Error 2
make: *** [cvtenc] Error 2
address@hidden /c/msys/1.0/home/leigh/SysDev/gnustep/core/base/Tools
$ make -n cvtenc
make -f GNUmakefile --no-print-directory --no-keep-going \
cvtenc.all.tool.variables
\
instance=cvtenc; \
operation=all; \
type=tool; \
abs_build_dir="."; \
if [ "" != "" ]; then \
echo Making $operation in subprojects of $type $instance...; \
for f in __done; do \
if [ $f != __done ]; then \
mf=GNUmakefile; \
if [ ! -f $f/$mf -a -f $f/Makefile ]; then \
mf=Makefile; \
echo "WARNING: No GNUmakefile found for subproject $f; using
'Makefile'"; \
fi; \
if [ "${abs_build_dir}" = "." ]; then \
gsbuild="."; \
else \
gsbuild="${abs_build_dir}/$f"; \
fi; \
if [ "" = "" ]; then \
if [ "$type" = "framework" ]; then \
framework_version=""; \
if [ "$framework_version" = "" ]; then
framework_version="A"; fi; \
owning_project_header_dir="../${instance}.framework/
Versions/${framework_version}/Headers"; \
else owning_project_header_dir=""; \
fi; \
else \
owning_project_header_dir="../"; \
fi; \
if make -C $f -f $mf --no-keep-going $operation \
OWNING_PROJECT_HEADER_DIR_NAME="$
{owning_project_header_dir}" \
DERIVED_SOURCES="../derived_src" \
GNUSTEP_BUILD_DIR="$gsbuild" \
; then \
:; \
else exit $?; \
fi; \
fi; \
done; \
fi; \
echo Making $operation for $type $instance...; \
make -f GNUmakefile --no-print-directory --no-keep-going \
internal-${type}-$operation \
GNUSTEP_TYPE=$type \
GNUSTEP_INSTANCE=$instance \
GNUSTEP_OPERATION=$operation \
INTERNAL_${type}_NAME=$instance \
TARGET=$instance \
GNUSTEP_BUILD_DIR="${abs_build_dir}"
Making all for tool cvtenc...
(echo " Linking tool cvtenc ...";gcc -o shared_obj/cvtenc.exe \
./shared_obj/cvtenc.o \
-L../Source/./shared_obj -Lc:/msys/1.0/home/leigh/GNUstep/
Library/Libraries -Lc:/GNUstep/Local/Library/Libraries -Lc:/GNUstep/
System/Library/Libraries -LC:/msys/1.0/local/lib -LC:/msys/1.0/local/
lib -LC:/msys/1.0/local/lib -LC:/msys/1.0/local/lib -lgnustep-base -
lobjc -lxslt -lxml2 -lz -liconv -liconv -lcallback -lavcall -lz -
lws2_32 -ladvapi32 -lcomctl32 -luser32 -lcomdlg32 -lmpr -lnetapi32 -
lm -I. )
address@hidden /c/msys/1.0/home/leigh/SysDev/gnustep/core/base/Tools
$ nm ../Source/shared_obj/gnustep-base.dll | grep NSLog
100a8f00 t __GLOBAL__I__NSLogDescriptor
101bc3d0 D __NSLog_printf_handler
100a89b0 t __NSLog_standard_printf_handler
101bc3d4 D __NSLogDescriptor
100a8ee0 T _NSLog
100bbe20 T _NSLogPageSize
100a8b00 T _NSLogv
address@hidden /c/msys/1.0/home/leigh/SysDev/gnustep/core/base/Tools
$ nm ../Source/shared_obj/libgnustep-base.dll.a | head -40
d000225.o:
00000000 i .idata$4
00000000 i .idata$5
00000000 i .idata$7
00000000 I _gnustep_base_dll_iname
d000000.o:
00000000 i .idata$2
00000000 i .idata$4
00000000 i .idata$5
00000000 I __head_gnustep_base_dll
U _gnustep_base_dll_iname
d000224.o:
00000000 i .idata$4
00000000 i .idata$5
00000000 i .idata$6
00000000 i .idata$7
00000000 t .text
U __head_gnustep_base_dll
00000000 I __imp__xsltXPathVariableLookup
00000000 T _xsltXPathVariableLookup
d000223.o:
00000000 i .idata$4
00000000 i .idata$5
00000000 i .idata$6
00000000 i .idata$7
00000000 t .text
U __head_gnustep_base_dll
00000000 I __imp__xsltXPathGetTransformContext
00000000 T _xsltXPathGetTransformContext
d000222.o:
00000000 i .idata$4
00000000 i .idata$5
00000000 i .idata$6
00000000 i .idata$7
00000000 t .text
--
Leigh M. Smith
mailto:address@hidden
http://www.leighsmith.com