Re: Problem with compile
Yeah, I should have mentioned that you should always use "sudo -E" (preserve environment variables) when using GNUstep make. So starting from scratch again, it would be: (I'd suggest trying the default install path with no prefix for now - it will install in subdirectories of /usr/local/): cd core cd make ./configure make sudo -E make install . /usr/local/share/GNUstep/Makefiles/GNUstep.sh # note that the command starts with period, space, forward-slash! cd .. cd base ./configure make sudo -E make install cd .. cd gui ./configure make sudo -E make install cd .. cd back ./configure make sudo -E make install cd .. Hope this helps Eric On 2011-09-26, at 7:39 AM, Jackie Gleason wrote: > Hey that was great, I think you might have given me an idea. I tried running > all of them using sudo -s instead of the sudo command (you gave me the idea > that it was creating a new token everytime) this seems to have worked. > > That list might be good to add to the wiki, of course I don't have access but > someone may want to. > > Thanks to everyone for their help I will keep testing it out. > > Jackie > ___ Gnustep-dev mailing list Gnustep-dev@gnu.org https://lists.gnu.org/mailman/listinfo/gnustep-dev
Re: Problem with compile
Hey that was great, I think you might have given me an idea. I tried running all of them using sudo -s instead of the sudo command (you gave me the idea that it was creating a new token everytime) this seems to have worked. That list might be good to add to the wiki, of course I don't have access but someone may want to. Thanks to everyone for their help I will keep testing it out. Jackie On Mon, Sep 26, 2011 at 9:19 AM, Richard Frith-Macdonald < rich...@tiptree.demon.co.uk> wrote: > > On 26 Sep 2011, at 13:45, Jackie Gleason wrote: > > > So this time I tried using the --prefix=/usr/local/GNUstep > > OK ... that's yet another prefix, so you will be installing in a new > location. > > > "Remove all and install make with > > > > ./configure --with-layout=gnustep" > > Ok I will try this today and post back shortly, should I include the > prefix still as well? > > Well, that could add another layer of confusion ... I'd recommend sticking > to the default layout rather than changing things. > > > "I expect your executables should be in /usr/GNUstep/share/bin libraries > in /usr/GNUstep/lib and your headers in /usr/GNUstep/include" > > > > Nope here are the ls from those folders... > > > > jackie@jackie-Latitude-E6410:/usr/local/GNUstep$ ls > > bin etc share > > jackie@jackie-Latitude-E6410:/usr/local/GNUstep$ cd share/ > > jackie@jackie-Latitude-E6410:/usr/local/GNUstep/share$ ls > > GNUstep man > > jackie@jackie-Latitude-E6410:/usr/local/GNUstep/share$ cd GNUstep/ > > jackie@jackie-Latitude-E6410:/usr/local/GNUstep/share/GNUstep$ ls > > Makefiles > > > > So as you can see no lib or libraries or any other such folder. > > So you appear to have only the make package installed ... > That means either you forgot to install base, or you installed base in the > wrong place. > The most likely reason for installing base in the wrong place would be > forgetting to do the '. > /usr/local/GNUstep/share/GNUstep/Makefiles/GNUsterp.sh' to set up your > environment, and having a old copy of gnustep-make around in your PATH which > gets picked up instead (so base gets installed with the old copy of make). > > > > "then look in /tmp/GNUstep, I see the lib and include subdirectories with > the base library stuff in them." > > > > There is no /tmp/GNUstep folder > > Nor should there be ... you didn't configure it to install in /tmp ... you > chose to install in /usr/local/GNUstep > > Really an install of GNUstep should be VERY easy to do ... if you follow > the three simple stages it's difficult to get any trouble: > 1. configure, build and install make > 2. set up your environment from the GNUstep.sh file produced by (1) > 3. build/install base and other packages in the environment set up at (2) > > You seem to have succeeded at stage 1, but failed to complete stage3 ... > which almost certainly means you've gone wrong at stage 2 and are using a > pre-existing gnustep-make installation rather than the one you just > built-installed. > The common (I say 'common', but they're still pretty rare) mistakes here > are: > a. running GNUstep.sh rather than sourcing it with the '.' command ... so > it doesn't actually set your shell environment variables > b. logging out and in again so the environment variables are lost before > you build/install the rest of gnustep. > c. using 'su' or similar to become another user (eg root) and wiping your > environment variables before building/installing the rest of gnustep. > > > > ___ Gnustep-dev mailing list Gnustep-dev@gnu.org https://lists.gnu.org/mailman/listinfo/gnustep-dev
Re: Problem with compile
On 26 Sep 2011, at 13:45, Jackie Gleason wrote: > So this time I tried using the --prefix=/usr/local/GNUstep OK ... that's yet another prefix, so you will be installing in a new location. > "Remove all and install make with > > ./configure --with-layout=gnustep" > Ok I will try this today and post back shortly, should I include the prefix > still as well? Well, that could add another layer of confusion ... I'd recommend sticking to the default layout rather than changing things. > "I expect your executables should be in /usr/GNUstep/share/bin libraries in > /usr/GNUstep/lib and your headers in /usr/GNUstep/include" > > Nope here are the ls from those folders... > > jackie@jackie-Latitude-E6410:/usr/local/GNUstep$ ls > bin etc share > jackie@jackie-Latitude-E6410:/usr/local/GNUstep$ cd share/ > jackie@jackie-Latitude-E6410:/usr/local/GNUstep/share$ ls > GNUstep man > jackie@jackie-Latitude-E6410:/usr/local/GNUstep/share$ cd GNUstep/ > jackie@jackie-Latitude-E6410:/usr/local/GNUstep/share/GNUstep$ ls > Makefiles > > So as you can see no lib or libraries or any other such folder. So you appear to have only the make package installed ... That means either you forgot to install base, or you installed base in the wrong place. The most likely reason for installing base in the wrong place would be forgetting to do the '. /usr/local/GNUstep/share/GNUstep/Makefiles/GNUsterp.sh' to set up your environment, and having a old copy of gnustep-make around in your PATH which gets picked up instead (so base gets installed with the old copy of make). > "then look in /tmp/GNUstep, I see the lib and include subdirectories with the > base library stuff in them." > > There is no /tmp/GNUstep folder Nor should there be ... you didn't configure it to install in /tmp ... you chose to install in /usr/local/GNUstep Really an install of GNUstep should be VERY easy to do ... if you follow the three simple stages it's difficult to get any trouble: 1. configure, build and install make 2. set up your environment from the GNUstep.sh file produced by (1) 3. build/install base and other packages in the environment set up at (2) You seem to have succeeded at stage 1, but failed to complete stage3 ... which almost certainly means you've gone wrong at stage 2 and are using a pre-existing gnustep-make installation rather than the one you just built-installed. The common (I say 'common', but they're still pretty rare) mistakes here are: a. running GNUstep.sh rather than sourcing it with the '.' command ... so it doesn't actually set your shell environment variables b. logging out and in again so the environment variables are lost before you build/install the rest of gnustep. c. using 'su' or similar to become another user (eg root) and wiping your environment variables before building/installing the rest of gnustep. ___ Gnustep-dev mailing list Gnustep-dev@gnu.org https://lists.gnu.org/mailman/listinfo/gnustep-dev
Re: Problem with compile
So this time I tried using the --prefix=/usr/local/GNUstep * "Remove all and install make with ./configure --with-layout=gnustep"* Ok I will try this today and post back shortly, should I include the prefix still as well? *"I expect your executables should be in /usr/GNUstep/share/bin libraries in /usr/GNUstep/lib and your headers in /usr/GNUstep/include"* * * Nope here are the ls from those folders... jackie@jackie-Latitude-E6410:/usr/local/GNUstep$ ls bin etc share jackie@jackie-Latitude-E6410:/usr/local/GNUstep$ cd share/ jackie@jackie-Latitude-E6410:/usr/local/GNUstep/share$ ls GNUstep man jackie@jackie-Latitude-E6410:/usr/local/GNUstep/share$ cd GNUstep/ jackie@jackie-Latitude-E6410:/usr/local/GNUstep/share/GNUstep$ ls Makefiles So as you can see no lib or libraries or any other such folder. * * *"then look in /tmp/GNUstep, I see the lib and include subdirectories with the base library stuff in them."* There is no /tmp/GNUstep folder here is the LS jackie@jackie-Latitude-E6410:/usr/local/GNUstep/share/GNUstep$ ls /tmp keyring-TxXT5P pulse-2L9K88eMlGn7 ssh-WPaXbKhp1474 VMwareDnD orbit-gdm pulse-PKdhtXMmr18n tmp730242ff.tmpvmware-root orbit-jackiepulse-ZHID9bmjmuKy virtual-jackie.4Sl0qP I looked through the config.log (and have included it as an attachment) but this is all I noticed... configure:5258: checking whether objc has thread support configure:5288: gcc -o conftest -g -O2 -x objective-c -I. -fgnu-runtime -DGNU_RUNTIME conftest.c -lobjc -lpthread >&5 In file included from conftest.c:9:0: config_thread.m:7:1: warning: incomplete implementation of class 'NXConstantString' config_thread.m:7:1: warning: method definition for '-length' not found config_thread.m:7:1: warning: method definition for '-cString' not found configure:5288: $? = 0 Also just in case here is a ls of the MakeFiles dir jackie@jackie-Latitude-E6410:/usr/local/GNUstep/share/GNUstep/Makefiles$ ls Additionalfixpath.shos.sh aggregate.makeframework.makepalette.make application.make GNUstep.csh parallel-subdirectories.make app-wrapper.template gnustep-make-help print_unique_pathlist.sh Auxiliary GNUstep-reset.sh relative_path.sh bundle.make GNUstep.shresource-set.make clean_cpu.sh gswapp.make rules.make clean_os.sh gswbundle.makeserial-subdirectories.make clean_vendor.sh install-shservice.make clibrary.make Instance spec-rules.template common.make java-executable.template strip_makefiles.sh config.guess java.make subproject.make config.make java-tool.maketar-exclude-list config-noarch.makejni.make target.make config.sublibrary-combo.maketest-application.make cpu.shlibrary.make TestFramework ctool.makeMastertest-library.make documentation.makemessages.make test-tool.make empty.makemkinstalldirs tool.make executable.template names.makevendor.sh filesystem.cshnative-library.make x86_64 filesystem.make nsi-app.template filesystem.sh objc.make On Mon, Sep 26, 2011 at 4:26 AM, Richard Frith-Macdonald < rich...@tiptree.demon.co.uk> wrote: > > On 25 Sep 2011, at 23:34, Jackie Gleason wrote: > > > I retried everything without using --prefix and no dice. > > > > Jackie > > > > On Sun, Sep 25, 2011 at 5:07 PM, Jackie Gleason > wrote: > > I did use the prefix option but I also tried without but I can try again > otherwise that is the order I did things. > > > > The weird thing is when I install gnumake it installs into a directory > like the following... > > > > /usr/GNUstep/share/GNUstep/MakeFiles > > > > I am wondering if there is an issue there. > > I think the normal install location for hardware independent stuff (eg the > makefiles/scripts) is /usr/local/share/GNUstep/Makefiles ... so if you > specified --prefix=/usr/GNUstep that path would be correct. > > I expect your executables should be in /usr/GNUstep/share/bin libraries in > /usr/GNUstep/lib and your headers in /usr/GNUstep/include > > In another email you said : > > > the ls for the folder is... > > :/usr/GnuStep# ls > > bin share > > That looks like the libraries and headers simply aren't installed (or are > installed elsewhere). > > > If I do ... > > cd make > ./configure --prefix=/tmp/GNUstep > make install > . /tmp/GNUstep/share/Makefiles/GNUstep.sh > cd ../base > ./configure > make install > > then look in /tmp/GNUstep, I see the lib and include subdirectories with > the base library stuff in them. > > > You could try looking at the config.log files for make and base to see if > you can spot anything. > If base builds and installs correctly then usually everything else is f
Re: Problem with compile
On 25 Sep 2011, at 23:34, Jackie Gleason wrote: > I retried everything without using --prefix and no dice. > > Jackie > > On Sun, Sep 25, 2011 at 5:07 PM, Jackie Gleason > wrote: > I did use the prefix option but I also tried without but I can try again > otherwise that is the order I did things. > > The weird thing is when I install gnumake it installs into a directory like > the following... > > /usr/GNUstep/share/GNUstep/MakeFiles > > I am wondering if there is an issue there. I think the normal install location for hardware independent stuff (eg the makefiles/scripts) is /usr/local/share/GNUstep/Makefiles ... so if you specified --prefix=/usr/GNUstep that path would be correct. I expect your executables should be in /usr/GNUstep/share/bin libraries in /usr/GNUstep/lib and your headers in /usr/GNUstep/include In another email you said : > the ls for the folder is... > :/usr/GnuStep# ls > bin share That looks like the libraries and headers simply aren't installed (or are installed elsewhere). If I do ... cd make ./configure --prefix=/tmp/GNUstep make install . /tmp/GNUstep/share/Makefiles/GNUstep.sh cd ../base ./configure make install then look in /tmp/GNUstep, I see the lib and include subdirectories with the base library stuff in them. You could try looking at the config.log files for make and base to see if you can spot anything. If base builds and installs correctly then usually everything else is fine because that means that make was built/installed correctly. ___ Gnustep-dev mailing list Gnustep-dev@gnu.org https://lists.gnu.org/mailman/listinfo/gnustep-dev
Re: Problem with compile
Remove all and install make with ./configure --with-layout=gnustep make make install and then install the rest of packages. Try if this works. If not, post here what you see at path: /usr/GNUstep. I don't understand what are happening here, but I always use the layout gnustep and all works perfect. On dom, 2011-09-25 at 18:34 -0400, Jackie Gleason wrote: > I retried everything without using --prefix and no dice. > > > Jackie > > On Sun, Sep 25, 2011 at 5:07 PM, Jackie Gleason > wrote: > I did use the prefix option but I also tried without but I can > try again otherwise that is the order I did things. > > The weird thing is when I install gnumake it installs into a > directory like the following... > > /usr/GNUstep/share/GNUstep/MakeFiles > > I am wondering if there is an issue there. > > Thanks to everyone for all of their help. > > > On Sep 25, 2011 4:58 PM, "Richard Frith-Macdonald" > wrote: > > > > On 24 Sep 2011, at 17:56, Jackie Gleason wrote: > >> > >> I install and Compile GNUstep by checking out the anonymous > core, then compiling in the order make, base, gui, back. I > compile all of them using the following command (under sudo > shell).. > >> > >> ./configure --prefix=/usr/GnuStep > >> make > >> make install > >> > >> After make I run the following... > >> . /usr/GnuStep/share/GNUstep/Makefiles/GNUstep.sh > > > > I'm not sure if you actually did exactly what you said ... > but that's not what the HOWTOs tell you to do, and may well > account for things being rather messed up. > > > > The correct order to do things in is: > > > > 1. Configure and install make (you can use the --prefix > option for this if you want) > > > > 2. Source the GNUstep.sh script to set up your environment > > > > 3. Configure, build and install the other packages *without* > using --prefix > > > > The reason for this order is that everything apart from make > is designed to be handled by gnustep-make, and the build > process will take care of installing stuff in the correct > place depending on how the make package was configured. If you > use --prefix= with the other packages, you will probably be > overriding the correct locations, and putting things where > they are not expected (so headers/libraries won't be found > later when you try to use them). > > > > > > > > > > > > > > > > > > > > > > > > > > ___ > Gnustep-dev mailing list > Gnustep-dev@gnu.org > https://lists.gnu.org/mailman/listinfo/gnustep-dev ___ Gnustep-dev mailing list Gnustep-dev@gnu.org https://lists.gnu.org/mailman/listinfo/gnustep-dev
Re: Problem with compile
I retried everything without using --prefix and no dice. Jackie On Sun, Sep 25, 2011 at 5:07 PM, Jackie Gleason wrote: > I did use the prefix option but I also tried without but I can try again > otherwise that is the order I did things. > > The weird thing is when I install gnumake it installs into a directory like > the following... > > /usr/GNUstep/share/GNUstep/MakeFiles > > I am wondering if there is an issue there. > > Thanks to everyone for all of their help. > On Sep 25, 2011 4:58 PM, "Richard Frith-Macdonald" < > rich...@tiptree.demon.co.uk> wrote: > > > > On 24 Sep 2011, at 17:56, Jackie Gleason wrote: > >> > >> I install and Compile GNUstep by checking out the anonymous core, then > compiling in the order make, base, gui, back. I compile all of them using > the following command (under sudo shell).. > >> > >> ./configure --prefix=/usr/GnuStep > >> make > >> make install > >> > >> After make I run the following... > >> . /usr/GnuStep/share/GNUstep/Makefiles/GNUstep.sh > > > > I'm not sure if you actually did exactly what you said ... but that's not > what the HOWTOs tell you to do, and may well account for things being rather > messed up. > > > > The correct order to do things in is: > > > > 1. Configure and install make (you can use the --prefix option for this > if you want) > > > > 2. Source the GNUstep.sh script to set up your environment > > > > 3. Configure, build and install the other packages *without* using > --prefix > > > > The reason for this order is that everything apart from make is designed > to be handled by gnustep-make, and the build process will take care of > installing stuff in the correct place depending on how the make package was > configured. If you use --prefix= with the other packages, you will probably > be overriding the correct locations, and putting things where they are not > expected (so headers/libraries won't be found later when you try to use > them). > > > > > > > > > > > > > > > > > > > > > > > ___ Gnustep-dev mailing list Gnustep-dev@gnu.org https://lists.gnu.org/mailman/listinfo/gnustep-dev
Re: Problem with compile
I did use the prefix option but I also tried without but I can try again otherwise that is the order I did things. The weird thing is when I install gnumake it installs into a directory like the following... /usr/GNUstep/share/GNUstep/MakeFiles I am wondering if there is an issue there. Thanks to everyone for all of their help. On Sep 25, 2011 4:58 PM, "Richard Frith-Macdonald" < rich...@tiptree.demon.co.uk> wrote: > > On 24 Sep 2011, at 17:56, Jackie Gleason wrote: >> >> I install and Compile GNUstep by checking out the anonymous core, then compiling in the order make, base, gui, back. I compile all of them using the following command (under sudo shell).. >> >> ./configure --prefix=/usr/GnuStep >> make >> make install >> >> After make I run the following... >> . /usr/GnuStep/share/GNUstep/Makefiles/GNUstep.sh > > I'm not sure if you actually did exactly what you said ... but that's not what the HOWTOs tell you to do, and may well account for things being rather messed up. > > The correct order to do things in is: > > 1. Configure and install make (you can use the --prefix option for this if you want) > > 2. Source the GNUstep.sh script to set up your environment > > 3. Configure, build and install the other packages *without* using --prefix > > The reason for this order is that everything apart from make is designed to be handled by gnustep-make, and the build process will take care of installing stuff in the correct place depending on how the make package was configured. If you use --prefix= with the other packages, you will probably be overriding the correct locations, and putting things where they are not expected (so headers/libraries won't be found later when you try to use them). > > > > > > > > > > > ___ Gnustep-dev mailing list Gnustep-dev@gnu.org https://lists.gnu.org/mailman/listinfo/gnustep-dev
Re: Problem with compile
On 24 Sep 2011, at 17:56, Jackie Gleason wrote: > > I install and Compile GNUstep by checking out the anonymous core, then > compiling in the order make, base, gui, back. I compile all of them using the > following command (under sudo shell).. > > ./configure --prefix=/usr/GnuStep > make > make install > > After make I run the following... > . /usr/GnuStep/share/GNUstep/Makefiles/GNUstep.sh I'm not sure if you actually did exactly what you said ... but that's not what the HOWTOs tell you to do, and may well account for things being rather messed up. The correct order to do things in is: 1. Configure and install make (you can use the --prefix option for this if you want) 2. Source the GNUstep.sh script to set up your environment 3. Configure, build and install the other packages *without* using --prefix The reason for this order is that everything apart from make is designed to be handled by gnustep-make, and the build process will take care of installing stuff in the correct place depending on how the make package was configured. If you use --prefix= with the other packages, you will probably be overriding the correct locations, and putting things where they are not expected (so headers/libraries won't be found later when you try to use them). ___ Gnustep-dev mailing list Gnustep-dev@gnu.org https://lists.gnu.org/mailman/listinfo/gnustep-dev
Re: Problem with compile
Ok using the code you provided and make with the parameters you suggested, see below. It does suggest something is not installing right, for example... L/home/jackie/GNUstep/Library/Libraries Although I never told it to install there and in fact was running under sudo during install it still shows it being installed in the home folder. Also, libraries does not hold any files... Should I be checking out the project to the / directory? currently I am checking it out to my development code folder jackie@jackie-Latitude-E6410:~$ ls GNUstep/Library/ jackie@jackie-Latitude-E6410:~$ ls GNUstep/Defaults/ Making all for tool LogTest... gcc source.m -c \ -MMD -MP -DGNU_RUNTIME=1 -DGNUSTEP_BASE_LIBRARY=1 -fno-strict-aliasing -fexceptions -fobjc-exceptions -D_NATIVE_OBJC_EXCEPTIONS -fPIC -Wall -DGSWARN -DGSDIAGNOSE -Wno-import -g -O2 -fgnu-runtime -I. -I/home/jackie/GNUstep/Library/Headers -I/usr/GNUstep/include \ -o obj/LogTest.obj/source.m.o gcc -rdynamic -shared-libgcc -fexceptions -fgnu-runtime -o obj/LogTest \ ./obj/LogTest.obj/source.m.o \ -L/home/jackie/GNUstep/Library/Libraries -L/usr/GNUstep/lib -lpthread -lobjc -lm ./obj/LogTest.obj/source.m.o:(.data.rel+0x0): undefined reference to `__objc_class_name_NSAutoreleasePool' ./obj/LogTest.obj/source.m.o:(.data.rel+0x8): undefined reference to `__objc_class_name_NSNumber' collect2: ld returned 1 exit status make[3]: *** [obj/LogTest] Error 1 make[2]: *** [internal-tool-all_] Error 2 make[1]: *** [LogTest.all.tool.variables] Error 2 make: *** [internal-all] Error 2 On Sun, Sep 25, 2011 at 1:57 PM, Eric Wasylishen wrote: > Hm, I'm not sure what is going on. Your install procedure looks correct and > I've used a very similar procedure on Ubuntu 11.04 successfully. > > Here's another test program you could try which avoids constant strings: > > #import > #include > > int main(int argc, const char **argv) > { > NSAutoreleasePool *pool = [[NSAutoreleasePool alloc] init]; > > printf("testing NSNumber: %d\n", [[NSNumber numberWithInt: 3] intValue]); > > [pool release]; > return 0; > } > > Also, could you try running make with "make messages=yes"? This will log > the full command line used to run gcc. > > How did you install the objective-C compiler and runtime? Just through the > gobjc package? > > -Eric > > On 2011-09-25, at 11:03 AM, Jackie Gleason wrote: > > Sorry, I was trying not to send the whole code, probably should have > included that. > > Anyway still looking for an answer, I believe it has something to do with > the way I am compiling from source since I don't see a Libraries folder > under /usr/GnuStep > > > #include > #import > > /* > * The next #include line is generally present in all Objective-C > * source files that use GNUstep. The Foundation.h header file > * includes all the other standard header files you need. > */ > > /* > * Declare the Test class that implements the class method > (classStringValue). > */ > @interface Test > + (const char *) classStringValue; > @end > > /* > * Define the Test class and the class method (classStringValue). > */ > @implementation Test > + (const char *) classStringValue; > { > return "This is the string value of the Test class"; > } > @end > > /* > * The main() function: pass a message to the Test class > * and print the returned string. > */ > int main(void) > { > NSString* s = @"Hello, world!"; > NSLog(s); > //printf("%s\n", [Test classStringValue]); > return 0; > } > > Same issue is still happening > > On Sun, Sep 25, 2011 at 12:51 PM, Eric Wasylishen > wrote: > >> Hey, >> To use NSLog, NSString, and even constant strings (@""), you need to >> import the GNUstep base headers. >> Adding: >> >> #import >> >> to the top of your source.m file should fix the problem. :-) >> Eric >> >> On 2011-09-24, at 10:56 AM, Jackie Gleason wrote: >> >> > I am trying to compile the following code >> > Environment: Ubuntu 11.04 x64 >> > >> > int main(void) >> > { >> > >> > NSString* s = @"Hello, world!"; >> > NSLog(s); >> > //printf("%s\n", [Test classStringValue]); >> > return 0; >> > } >> > >> > I install and Compile GNUstep by checking out the anonymous core, then >> compiling in the order make, base, gui, back. I compile all of them using >> the following command (under sudo shell).. >> > >> > ./configure --prefix=/usr/GnuStep >> > make >> > make install >> > >> > After make I run the following... >> > . /usr/GnuStep/share/GNUstep/Makefiles/GNUstep.sh >> > >> > Finally I create the following GNUMakeFile... >> > >> > include $(GNUSTEP_MAKEFILES)/common.make >> > >> > TOOL_NAME = LogTest >> > LogTest_OBJC_FILES = source.m >> > >> > include $(GNUSTEP_MAKEFILES)/tool.make >> > >> > But when I try running I get the following message... >> > ~/Development/Code/personal/GnuStep/helloWorld$ make >> > This is gnustep-make 2.6.1. Type 'make print-gnustep-make-help' for >> help. >> > Making all for tool LogTest... >> > Compiling file source.m ... >> > source.m: In func
Re: Problem with compile
Sorry, I was trying not to send the whole code, probably should have included that. Anyway still looking for an answer, I believe it has something to do with the way I am compiling from source since I don't see a Libraries folder under /usr/GnuStep #include #import /* * The next #include line is generally present in all Objective-C * source files that use GNUstep. The Foundation.h header file * includes all the other standard header files you need. */ /* * Declare the Test class that implements the class method (classStringValue). */ @interface Test + (const char *) classStringValue; @end /* * Define the Test class and the class method (classStringValue). */ @implementation Test + (const char *) classStringValue; { return "This is the string value of the Test class"; } @end /* * The main() function: pass a message to the Test class * and print the returned string. */ int main(void) { NSString* s = @"Hello, world!"; NSLog(s); //printf("%s\n", [Test classStringValue]); return 0; } Same issue is still happening On Sun, Sep 25, 2011 at 12:51 PM, Eric Wasylishen wrote: > Hey, > To use NSLog, NSString, and even constant strings (@""), you need to import > the GNUstep base headers. > Adding: > > #import > > to the top of your source.m file should fix the problem. :-) > Eric > > On 2011-09-24, at 10:56 AM, Jackie Gleason wrote: > > > I am trying to compile the following code > > Environment: Ubuntu 11.04 x64 > > > > int main(void) > > { > > > > NSString* s = @"Hello, world!"; > > NSLog(s); > > //printf("%s\n", [Test classStringValue]); > > return 0; > > } > > > > I install and Compile GNUstep by checking out the anonymous core, then > compiling in the order make, base, gui, back. I compile all of them using > the following command (under sudo shell).. > > > > ./configure --prefix=/usr/GnuStep > > make > > make install > > > > After make I run the following... > > . /usr/GnuStep/share/GNUstep/Makefiles/GNUstep.sh > > > > Finally I create the following GNUMakeFile... > > > > include $(GNUSTEP_MAKEFILES)/common.make > > > > TOOL_NAME = LogTest > > LogTest_OBJC_FILES = source.m > > > > include $(GNUSTEP_MAKEFILES)/tool.make > > > > But when I try running I get the following message... > > ~/Development/Code/personal/GnuStep/helloWorld$ make > > This is gnustep-make 2.6.1. Type 'make print-gnustep-make-help' for help. > > Making all for tool LogTest... > > Compiling file source.m ... > > source.m: In function ‘main’: > > source.m:36:3: error: cannot find interface declaration for > ‘NXConstantString’ > > make[3]: *** [obj/LogTest.obj/source.m.o] Error 1 > > make[2]: *** [internal-tool-all_] Error 2 > > make[1]: *** [LogTest.all.tool.variables] Error 2 > > make: *** [internal-all] Error 2 > > > > the ls for the folder is... > > :/usr/GnuStep# ls > > bin share > > > > Any help would be very appreciated. > > ___ > > Gnustep-dev mailing list > > Gnustep-dev@gnu.org > > https://lists.gnu.org/mailman/listinfo/gnustep-dev > > ___ Gnustep-dev mailing list Gnustep-dev@gnu.org https://lists.gnu.org/mailman/listinfo/gnustep-dev
Re: Problem with compile
Hm, I'm not sure what is going on. Your install procedure looks correct and I've used a very similar procedure on Ubuntu 11.04 successfully. Here's another test program you could try which avoids constant strings: #import #include int main(int argc, const char **argv) { NSAutoreleasePool *pool = [[NSAutoreleasePool alloc] init]; printf("testing NSNumber: %d\n", [[NSNumber numberWithInt: 3] intValue]); [pool release]; return 0; } Also, could you try running make with "make messages=yes"? This will log the full command line used to run gcc. How did you install the objective-C compiler and runtime? Just through the gobjc package? -Eric On 2011-09-25, at 11:03 AM, Jackie Gleason wrote: > Sorry, I was trying not to send the whole code, probably should have included > that. > > Anyway still looking for an answer, I believe it has something to do with the > way I am compiling from source since I don't see a Libraries folder under > /usr/GnuStep > > > #include > #import > > /* > * The next #include line is generally present in all Objective-C > * source files that use GNUstep. The Foundation.h header file > * includes all the other standard header files you need. > */ > > /* > * Declare the Test class that implements the class method (classStringValue). > */ > @interface Test > + (const char *) classStringValue; > @end > > /* > * Define the Test class and the class method (classStringValue). > */ > @implementation Test > + (const char *) classStringValue; > { > return "This is the string value of the Test class"; > } > @end > > /* > * The main() function: pass a message to the Test class > * and print the returned string. > */ > int main(void) > { > NSString* s = @"Hello, world!"; > NSLog(s); > //printf("%s\n", [Test classStringValue]); > return 0; > } > > Same issue is still happening > > On Sun, Sep 25, 2011 at 12:51 PM, Eric Wasylishen > wrote: > Hey, > To use NSLog, NSString, and even constant strings (@""), you need to import > the GNUstep base headers. > Adding: > > #import > > to the top of your source.m file should fix the problem. :-) > Eric > > On 2011-09-24, at 10:56 AM, Jackie Gleason wrote: > > > I am trying to compile the following code > > Environment: Ubuntu 11.04 x64 > > > > int main(void) > > { > > > > NSString* s = @"Hello, world!"; > > NSLog(s); > > //printf("%s\n", [Test classStringValue]); > > return 0; > > } > > > > I install and Compile GNUstep by checking out the anonymous core, then > > compiling in the order make, base, gui, back. I compile all of them using > > the following command (under sudo shell).. > > > > ./configure --prefix=/usr/GnuStep > > make > > make install > > > > After make I run the following... > > . /usr/GnuStep/share/GNUstep/Makefiles/GNUstep.sh > > > > Finally I create the following GNUMakeFile... > > > > include $(GNUSTEP_MAKEFILES)/common.make > > > > TOOL_NAME = LogTest > > LogTest_OBJC_FILES = source.m > > > > include $(GNUSTEP_MAKEFILES)/tool.make > > > > But when I try running I get the following message... > > ~/Development/Code/personal/GnuStep/helloWorld$ make > > This is gnustep-make 2.6.1. Type 'make print-gnustep-make-help' for help. > > Making all for tool LogTest... > > Compiling file source.m ... > > source.m: In function ‘main’: > > source.m:36:3: error: cannot find interface declaration for > > ‘NXConstantString’ > > make[3]: *** [obj/LogTest.obj/source.m.o] Error 1 > > make[2]: *** [internal-tool-all_] Error 2 > > make[1]: *** [LogTest.all.tool.variables] Error 2 > > make: *** [internal-all] Error 2 > > > > the ls for the folder is... > > :/usr/GnuStep# ls > > bin share > > > > Any help would be very appreciated. > > ___ > > Gnustep-dev mailing list > > Gnustep-dev@gnu.org > > https://lists.gnu.org/mailman/listinfo/gnustep-dev > > ___ Gnustep-dev mailing list Gnustep-dev@gnu.org https://lists.gnu.org/mailman/listinfo/gnustep-dev
Re: Problem with compile
Hey, To use NSLog, NSString, and even constant strings (@""), you need to import the GNUstep base headers. Adding: #import to the top of your source.m file should fix the problem. :-) Eric On 2011-09-24, at 10:56 AM, Jackie Gleason wrote: > I am trying to compile the following code > Environment: Ubuntu 11.04 x64 > > int main(void) > { > > NSString* s = @"Hello, world!"; > NSLog(s); > //printf("%s\n", [Test classStringValue]); > return 0; > } > > I install and Compile GNUstep by checking out the anonymous core, then > compiling in the order make, base, gui, back. I compile all of them using the > following command (under sudo shell).. > > ./configure --prefix=/usr/GnuStep > make > make install > > After make I run the following... > . /usr/GnuStep/share/GNUstep/Makefiles/GNUstep.sh > > Finally I create the following GNUMakeFile... > > include $(GNUSTEP_MAKEFILES)/common.make > > TOOL_NAME = LogTest > LogTest_OBJC_FILES = source.m > > include $(GNUSTEP_MAKEFILES)/tool.make > > But when I try running I get the following message... > ~/Development/Code/personal/GnuStep/helloWorld$ make > This is gnustep-make 2.6.1. Type 'make print-gnustep-make-help' for help. > Making all for tool LogTest... > Compiling file source.m ... > source.m: In function ‘main’: > source.m:36:3: error: cannot find interface declaration for ‘NXConstantString’ > make[3]: *** [obj/LogTest.obj/source.m.o] Error 1 > make[2]: *** [internal-tool-all_] Error 2 > make[1]: *** [LogTest.all.tool.variables] Error 2 > make: *** [internal-all] Error 2 > > the ls for the folder is... > :/usr/GnuStep# ls > bin share > > Any help would be very appreciated. > ___ > Gnustep-dev mailing list > Gnustep-dev@gnu.org > https://lists.gnu.org/mailman/listinfo/gnustep-dev ___ Gnustep-dev mailing list Gnustep-dev@gnu.org https://lists.gnu.org/mailman/listinfo/gnustep-dev
Problem with compile
I am trying to compile the following code Environment: Ubuntu 11.04 x64 int main(void) { NSString* s = @"Hello, world!"; NSLog(s); //printf("%s\n", [Test classStringValue]); return 0; } I install and Compile GNUstep by checking out the anonymous core, then compiling in the order make, base, gui, back. I compile all of them using the following command (under sudo shell).. ./configure --prefix=/usr/GnuStep make make install After make I run the following... . /usr/GnuStep/share/GNUstep/Makefiles/GNUstep.sh Finally I create the following GNUMakeFile... include $(GNUSTEP_MAKEFILES)/common.make TOOL_NAME = LogTest LogTest_OBJC_FILES = source.m include $(GNUSTEP_MAKEFILES)/tool.make But when I try running I get the following message... ~/Development/Code/personal/GnuStep/helloWorld$ make This is gnustep-make 2.6.1. Type 'make print-gnustep-make-help' for help. Making all for tool LogTest... Compiling file source.m ... source.m: In function ‘main’: source.m:36:3: error: cannot find interface declaration for ‘NXConstantString’ make[3]: *** [obj/LogTest.obj/source.m.o] Error 1 make[2]: *** [internal-tool-all_] Error 2 make[1]: *** [LogTest.all.tool.variables] Error 2 make: *** [internal-all] Error 2 the ls for the folder is... :/usr/GnuStep# ls bin share Any help would be very appreciated. ___ Gnustep-dev mailing list Gnustep-dev@gnu.org https://lists.gnu.org/mailman/listinfo/gnustep-dev