gnustep-dev
[Top][All Lists]
Advanced

[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







reply via email to

[Prev in Thread] Current Thread [Next in Thread]