Re: GNUmakefile and a strange case

2006-12-26 Thread José Pablo Fernández
On Tuesday 19 December 2006 21:44, Christopher Armstrong wrote:
> Hi
>
> > gcc -o account.so -shared Account.os cli.os man.os User.os Group.os
> > LoggedUser.os -L/usr/lib/GNUstep/System/Library/Libraries -lobjc
> > -lgnustep-base
> > scons: done building targets.
>
> Note with this you're linking against the gnustep-base library, which
> includes the NSString class (the missing export in your error messages).
> I guess you are making use of NSString somehow (either in the constant
> (@"") or non-constant form).

Yes, I am using NSString directly ([NSString ...]) and indirectly (@"...") 
many times as well as other GNUstep classes. And since it is a library I am 
using I am liking with it... anything wrong there ?

> > On Monday 18 December 2006 19:49, José Pablo Fernández wrote:
> > > User.m:108: warning: ‘_OBJC_INSTANCE_0’ defined but not used
> > > User.m:185: warning: ‘_OBJC_INSTANCE_1’ defined but not used
> > > User.m:194: warning: ‘_OBJC_INSTANCE_2’ defined but not used
>
> These warnings come with gnustep-base when you use constant strings in
> the form
>
> @"something here"
>
> They seem to be harmless, and its a bug in gcc that should be fixed when
> the gcc guys get round to it (ask them; check their bug reporting system
> first).

Ok, thank you.

> > > ?
> > >
> > > Any help in any of these problems is appreciated.
>
> You said you were compiling a "c library".

It used to be a c-only library... now it is a obj-c library.

> This form of a GNUmakefile 
> with GNUstep does not link in gnustep-base.

I am not sure what we are talking about really, because...

> You will want to compile as 
> a normal library ($(GNUSTEP_MAKEFILES)/library.make). 

... that is what I included in my GNUmakefile. My current GNUmakefile looks 
like this:

include $(GNUSTEP_MAKEFILES)/common.make

LIBRARY_NAME = account

account_OBJC_FILES = Account.m cli.m Group.m LoggedUser.m man.m User.m
account_OBJCFLAGS = -D_GNU_SOURCE -std=gnu99 -pipe -Wall -ggdb

-include GNUmakefile.preamble

include $(GNUSTEP_MAKEFILES)/library.make

-include GNUmakefile.postamble

> Please note that 
> what you are doing by putting the library in a different directory is
> likely to cause problems. The gnustep-base library and the objective-c
> runtime will somehow need to be in your library export path (ldconfig
> and friends) for libaccount.so to load properly.

I can't avoid this. This library is dloaded by another program which loads all 
the libraries (modules/plugins) in a certain directory, I have to install my 
library there and even name it in a special way (no "lib").
-- 
José Pablo Fernández
[EMAIL PROTECTED]


___
Gnustep-dev mailing list
Gnustep-dev@gnu.org
http://lists.gnu.org/mailman/listinfo/gnustep-dev


Re: GNUmakefile and a strange case

2006-12-18 Thread José Pablo Fernández
I thought maybe it was usefull to see how I was compiling it with SCons:

$ scons
scons: Reading SConscript files ...
scons: done reading SConscript files.
scons: Building targets ...
gcc -o 
Account.os -c -D_GNU_SOURCE -std=gnu99 -pipe -Wall -ggdb 
-I/usr/include/GNUstep/Headers/ -fconstant-string-class="NSConstantString" 
-fPIC 
Account.m
gcc -o 
cli.os -c -D_GNU_SOURCE -std=gnu99 -pipe -Wall -ggdb 
-I/usr/include/GNUstep/Headers/ -fconstant-string-class="NSConstantString" 
-fPIC 
cli.m
gcc -o 
man.os -c -D_GNU_SOURCE -std=gnu99 -pipe -Wall -ggdb 
-I/usr/include/GNUstep/Headers/ -fconstant-string-class="NSConstantString" 
-fPIC 
man.m
gcc -o 
User.os -c -D_GNU_SOURCE -std=gnu99 -pipe -Wall -ggdb 
-I/usr/include/GNUstep/Headers/ -fconstant-string-class="NSConstantString" 
-fPIC 
User.m
gcc -o 
Group.os -c -D_GNU_SOURCE -std=gnu99 -pipe -Wall -ggdb 
-I/usr/include/GNUstep/Headers/ -fconstant-string-class="NSConstantString" 
-fPIC 
Group.m
gcc -o 
LoggedUser.os -c -D_GNU_SOURCE -std=gnu99 -pipe -Wall -ggdb 
-I/usr/include/GNUstep/Headers/ -fconstant-string-class="NSConstantString" 
-fPIC 
LoggedUser.m
gcc -o account.so -shared Account.os cli.os man.os User.os Group.os 
LoggedUser.os -L/usr/lib/GNUstep/System/Library/Libraries -lobjc -lgnustep-base
scons: done building targets.


Thanks.
On Monday 18 December 2006 19:49, José Pablo Fernández wrote:
> Hello,
> I have a strange situation here, it used to be a C library compiled with
> SCons, but now I am using ObjC and GNUstep and I was recommended to use
> GNUmakefiles because of the added goodies.
> Now, I need to create a library, the library should be called account.so
> (note, not libaccount.so, account.so) and it should be installed
> on /usr/lib/account/modules/ not on /whatever/Library/whatever. How can I
> do this ?
> Now, this library is dlopened, when I compile it with SCons it is loaded
> succesfully, when I compile it with GNUmakefile (and copy the file by hand
> renaming it in the process) I get this error:
>
> Error loading module 'account.so': /usr/lib/asterisk/modules/account.so:
> undefined symbol: __objc_class_name_NSString
>
> Evidently there's something different in how it was linked with the gnustep
> libraries.
>
> And as a last detail, I get this warnings, what do they mean:
>
> User.m:108: warning: ‘_OBJC_INSTANCE_0’ defined but not used
> User.m:185: warning: ‘_OBJC_INSTANCE_1’ defined but not used
> User.m:194: warning: ‘_OBJC_INSTANCE_2’ defined but not used
>
> ?
>
> Any help in any of these problems is appreciated.
>
> Thank you.

-- 
José Pablo Fernández
[EMAIL PROTECTED]


___
Gnustep-dev mailing list
Gnustep-dev@gnu.org
http://lists.gnu.org/mailman/listinfo/gnustep-dev


GNUmakefile and a strange case

2006-12-18 Thread José Pablo Fernández
Hello,
I have a strange situation here, it used to be a C library compiled with 
SCons, but now I am using ObjC and GNUstep and I was recommended to use 
GNUmakefiles because of the added goodies.
Now, I need to create a library, the library should be called account.so 
(note, not libaccount.so, account.so) and it should be installed 
on /usr/lib/account/modules/ not on /whatever/Library/whatever. How can I do 
this ?
Now, this library is dlopened, when I compile it with SCons it is loaded 
succesfully, when I compile it with GNUmakefile (and copy the file by hand 
renaming it in the process) I get this error:

Error loading module 'account.so': /usr/lib/asterisk/modules/account.so: 
undefined symbol: __objc_class_name_NSString

Evidently there's something different in how it was linked with the gnustep 
libraries.

And as a last detail, I get this warnings, what do they mean:

User.m:108: warning: ‘_OBJC_INSTANCE_0’ defined but not used
User.m:185: warning: ‘_OBJC_INSTANCE_1’ defined but not used
User.m:194: warning: ‘_OBJC_INSTANCE_2’ defined but not used

?

Any help in any of these problems is appreciated.

Thank you.
-- 
José Pablo Fernández
[EMAIL PROTECTED]


___
Gnustep-dev mailing list
Gnustep-dev@gnu.org
http://lists.gnu.org/mailman/listinfo/gnustep-dev