|
View:
New views
8 Messages
—
Rating Filter:
Alert me
|
|
|
Compiling Osirix with GnuStepHi all
I am a Doctor, and I am trying to get Osirix (http://www.osirix-viewer.com/), a free medical imaging editor with Gnustep. I installed all gnustep software, I compiled pbxbuild, and tried to execute it as said in this page : http://osirix.svn.sourceforge.net/viewvc/osirix/Documentation/Developers Guide/index.html $ pbxbuild OsiriX.xcodeproj/ First, I get numerous messages like this: 2009-10-17 09:36:56.879 pbxbuild[22110] Warning: Unknown reference type 'PBXVariantGroup' in PBXGroup! 2009-10-17 09:36:56.886 pbxbuild[22110] Warning: Unknown reference type 'PBXVariantGroup' in PBXGroup! Then this: 2009-10-17 09:36:57.230 pbxbuild[22110] Found Target OsiriX 2009-10-17 09:36:57.267 pbxbuild[22110] Found Target DCM Framework 2009-10-17 09:36:57.291 pbxbuild[22110] Found Target DCM StaticLibrary 2009-10-17 09:36:57.291 pbxbuild[22110] Don't know how to handle target type: 'PBXAggregateTarget', skipping... 2009-10-17 09:36:57.292 pbxbuild[22110] Don't know how to handle target type: 'PBXAggregateTarget', skipping... 2009-10-17 09:36:57.330 pbxbuild[22110] Found Target Decompress 2009-10-17 09:36:57.331 pbxbuild[22110] Found Target DICOMPrint 2009-10-17 09:36:57.331 pbxbuild[22110] Found Target 32-bit shell 2009-10-17 09:36:57.332 pbxbuild[22110] Don't know how to handle target type: 'PBXAggregateTarget', skipping... 2009-10-17 09:36:57.332 pbxbuild[22110] Found Target OsiriX Headers 2009-10-17 09:36:57.333 pbxbuild[22110] Removing old build dir... This is gnustep-make 2.0.8. Type 'make print-gnustep-make-help' for help. Making all in OsiriX.app... mkdir -p ./obj/./ITK180 Then this: sh /mnt/sda2/osirix/osirix/pbxbuild/scripts/script_26928318.sh /mnt/sda2/osirix/osirix/pbxbuild/scripts/script_26928318.sh: line 17: syntax error: unexpected end of file make[1]: [before-all] Erreur 2 (ignorée) sh /mnt/sda2/osirix/osirix/pbxbuild/scripts/script_135614455.sh Then this: /mnt/sda2/osirix/osirix/pbxbuild/scripts/script_135614455.sh: line 41: ` open(FH, "$INFO") or die "$0: $INFO: $!";' make[1]: [before-all] Erreur 2 (ignorée) Making all for app OsiriX... Creating OsiriX.app/.... Compiling file NIfTI_Library/nifti1_io.c ... NIfTI_Library/nifti1_io.c:295: attention : deprecated conversion from string constant to ‘char*’ NIfTI_Library/nifti1_io.c:295: attention : deprecated conversion from string constant to ‘char*’ Then this: NIfTI_Library/nifti1_io.c: In function ‘int is_nifti_file(const char*)’: NIfTI_Library/nifti1_io.c:2874: attention : comparaison entre des expressions entières signée et non signée NIfTI_Library/nifti1_io.c: In function ‘nifti_image* nifti_convert_nhdr2nim(nifti_1_header, const char*)’: NIfTI_Library/nifti1_io.c:3248: attention : comparaison entre des expressions entières signée et non signée NIfTI_Library/nifti1_io.c: In function ‘nifti_image* nifti_image_read(const char*, int)’: NIfTI_Library/nifti1_io.c:3606: attention : comparaison entre des expressions entières signée et non signée g++: apps: fichier d'entrée d'édition de liens n'est pas utilisé parce l'édition de lien n'a pas été faite g++: Panes/OSIHotKeysPreferencePane/build: fichier d'entrée d'édition de liens n'est pas utilisé parce l'édition de lien n'a pas été faite g++: Panes: fichier d'entrée d'édition de liens n'est pas utilisé parce l'édition de lien n'a pas été faite Then this: Compiling file Papyrus3/DicomDir/DicomDirDataSetWrite.c ... Dans le fichier inclus à partir de ././Papyrus3/Papyrus3.h:72, à partir de Papyrus3/DicomDir/DicomDir.h:24, à partir de Papyrus3/DicomDir/DicomDirDataSetWrite.c:15: ././Papyrus3/PapyPrivFunctionDef3.h:13:33: attention : libkern/OSByteOrder.h : Aucun fichier ou dossier de ce type In file included from ././Papyrus3/Papyrus3.h:72, (looks like some file is missing) I found this header should be the same as the one in Linux source file. So, il replaced #include <libkern/OSByteOrder.h> by #include "/usr/src/linux-2.6.29.6- desktop586-2mnb/arch/x86/include/asm/byteorder.h" The error message stops, but the result is as bad : ././Papyrus3/PapyPrivFunctionDef3.h: In function ‘long long unsigned int UInt64ToHost(PapyShort, unsigned char*)’: ././Papyrus3/PapyPrivFunctionDef3.h:123: erreur: ‘OSSwapLittleToHostInt64’ was not declared in this scope ././Papyrus3/PapyPrivFunctionDef3.h:125: erreur: ‘OSSwapBigToHostInt64’ was not declared in this scope then make[2]: *** [obj/./Papyrus3/DicomDir/DicomDirDataSetWrite.c.o] Erreur 1 make[1]: *** [OsiriX.all.app.variables] Erreur 2 make: *** [internal-all] Erreur 2 The availability of this program on Linux should be very important to let medical establishments switch to free software. I would appreciate any help which could make Osirix work on Linux Many thanks Gerard _______________________________________________ Discuss-gnustep mailing list Discuss-gnustep@... http://lists.gnu.org/mailman/listinfo/discuss-gnustep |
|
|
Re: Compiling Osirix with GnuStepdelafond gerard schrieb:
> Hi all > > I am a Doctor, and I am trying to get Osirix (http://www.osirix-viewer.com/), > a free medical imaging editor with Gnustep. > > I installed all gnustep software, I compiled pbxbuild, and tried to execute it > as said in this page : > http://osirix.svn.sourceforge.net/viewvc/osirix/Documentation/Developers > Guide/index.html > > $ pbxbuild OsiriX.xcodeproj/ > > First, I get numerous messages like this: > 2009-10-17 09:36:56.879 pbxbuild[22110] Warning: Unknown reference type > 'PBXVariantGroup' in PBXGroup! > 2009-10-17 09:36:56.886 pbxbuild[22110] Warning: Unknown reference type > 'PBXVariantGroup' in PBXGroup! > > Then this: > 2009-10-17 09:36:57.230 pbxbuild[22110] Found Target OsiriX > 2009-10-17 09:36:57.267 pbxbuild[22110] Found Target DCM Framework > 2009-10-17 09:36:57.291 pbxbuild[22110] Found Target DCM StaticLibrary > 2009-10-17 09:36:57.291 pbxbuild[22110] Don't know how to handle target type: > 'PBXAggregateTarget', skipping... > 2009-10-17 09:36:57.292 pbxbuild[22110] Don't know how to handle target type: > 'PBXAggregateTarget', skipping... > 2009-10-17 09:36:57.330 pbxbuild[22110] Found Target Decompress > 2009-10-17 09:36:57.331 pbxbuild[22110] Found Target DICOMPrint > 2009-10-17 09:36:57.331 pbxbuild[22110] Found Target 32-bit shell > 2009-10-17 09:36:57.332 pbxbuild[22110] Don't know how to handle target type: > 'PBXAggregateTarget', skipping... > 2009-10-17 09:36:57.332 pbxbuild[22110] Found Target OsiriX Headers > 2009-10-17 09:36:57.333 pbxbuild[22110] Removing old build dir... > This is gnustep-make 2.0.8. Type 'make print-gnustep-make-help' for help. > Making all in OsiriX.app... > mkdir -p ./obj/./ITK180 > > Then this: > sh /mnt/sda2/osirix/osirix/pbxbuild/scripts/script_26928318.sh > /mnt/sda2/osirix/osirix/pbxbuild/scripts/script_26928318.sh: line 17: syntax > error: unexpected end of file > make[1]: [before-all] Erreur 2 (ignorée) > sh /mnt/sda2/osirix/osirix/pbxbuild/scripts/script_135614455.sh > > > Then this: > /mnt/sda2/osirix/osirix/pbxbuild/scripts/script_135614455.sh: line 41: ` > open(FH, "$INFO") or die "$0: $INFO: $!";' > make[1]: [before-all] Erreur 2 (ignorée) > Making all for app OsiriX... > Creating OsiriX.app/.... > Compiling file NIfTI_Library/nifti1_io.c ... > NIfTI_Library/nifti1_io.c:295: attention : deprecated conversion from string > constant to ‘char*’ > NIfTI_Library/nifti1_io.c:295: attention : deprecated conversion from string > constant to ‘char*’ > > Then this: > NIfTI_Library/nifti1_io.c: In function ‘int is_nifti_file(const char*)’: > NIfTI_Library/nifti1_io.c:2874: attention : comparaison entre des expressions > entières signée et non signée > NIfTI_Library/nifti1_io.c: In function ‘nifti_image* > nifti_convert_nhdr2nim(nifti_1_header, const char*)’: > NIfTI_Library/nifti1_io.c:3248: attention : comparaison entre des expressions > entières signée et non signée > NIfTI_Library/nifti1_io.c: In function ‘nifti_image* nifti_image_read(const > char*, int)’: > NIfTI_Library/nifti1_io.c:3606: attention : comparaison entre des expressions > entières signée et non signée > g++: apps: fichier d'entrée d'édition de liens n'est pas utilisé parce > l'édition de lien n'a pas été faite > g++: Panes/OSIHotKeysPreferencePane/build: fichier d'entrée d'édition de liens > n'est pas utilisé parce l'édition de lien n'a pas été faite > g++: Panes: fichier d'entrée d'édition de liens n'est pas utilisé parce > l'édition de lien n'a pas été faite > > Then this: > Compiling file Papyrus3/DicomDir/DicomDirDataSetWrite.c ... > Dans le fichier inclus à partir de ././Papyrus3/Papyrus3.h:72, > à partir de Papyrus3/DicomDir/DicomDir.h:24, > à partir de Papyrus3/DicomDir/DicomDirDataSetWrite.c:15: > ././Papyrus3/PapyPrivFunctionDef3.h:13:33: attention : libkern/OSByteOrder.h : > Aucun fichier ou dossier de ce type > In file included from ././Papyrus3/Papyrus3.h:72, > > (looks like some file is missing) > > I found this header should be the same as the one in Linux source file. So, il > replaced > #include <libkern/OSByteOrder.h> > by > #include "/usr/src/linux-2.6.29.6- > desktop586-2mnb/arch/x86/include/asm/byteorder.h" > > The error message stops, but the result is as bad : > ././Papyrus3/PapyPrivFunctionDef3.h: In function ‘long long unsigned int > UInt64ToHost(PapyShort, unsigned char*)’: > ././Papyrus3/PapyPrivFunctionDef3.h:123: erreur: ‘OSSwapLittleToHostInt64’ was > not declared in this scope > ././Papyrus3/PapyPrivFunctionDef3.h:125: erreur: ‘OSSwapBigToHostInt64’ was > not declared in this scope > > > then > make[2]: *** [obj/./Papyrus3/DicomDir/DicomDirDataSetWrite.c.o] Erreur 1 > make[1]: *** [OsiriX.all.app.variables] Erreur 2 > make: *** [internal-all] Erreur 2 > > The availability of this program on Linux should be very important to let > medical establishments switch to free software. > > I would appreciate any help which could make Osirix work on Linux > > Many thanks > > Gerard Hi Gerard, interesting stuff that you are doing here. The byte order problem you are having should be easy to resolve. The Papyrus code uses the lowest level of the byte order interface. You should change it over to the byte order functions exported by Foundation, these are also implemented in GNUstep base and therefore easily portable. Have a look at the file NSByteOrder.h and replace OSSwapBigToHostInt64 with NSSwapBigLongLongToHost and so on. You could of course also rebuild this functionality based on the Linux header you already found, but this is surely more trouble. Hope this helps Fred _______________________________________________ Discuss-gnustep mailing list Discuss-gnustep@... http://lists.gnu.org/mailman/listinfo/discuss-gnustep |
|
|
Re: Compiling Osirix with GnuStepLe dimanche 18 octobre 2009, Fred Kiefer a écrit :
> > interesting stuff that you are doing here. The byte order problem you > are having should be easy to resolve. The Papyrus code uses the lowest > level of the byte order interface. You should change it over to the byte > order functions exported by Foundation, these are also implemented in > GNUstep base and therefore easily portable. Have a look at the file > NSByteOrder.h and replace OSSwapBigToHostInt64 with > NSSwapBigLongLongToHost and so on. OK. It works. Thanks. > You could of course also rebuild this functionality based on the Linux > header you already found, but this is surely more trouble. > > Hope this helps Sure ! > Fred New problem : Papyrus3/PapyFileSystemUnix3.c: In function ‘int Papy3DGetNbFiles(char*, int*)’: Papyrus3/PapyFileSystemUnix3.c:327: erreur: invalid application of ‘sizeof’ to incomplete type ‘DIR’ make[2]: *** [obj/./Papyrus3/PapyFileSystemUnix3.c.o] Erreur 1 I have a look at the bad line : int Papy3DGetNbFiles (char *dicomPath, int *nbFiles) { struct stat *aStatStruct; struct dirent *aDirent; DIR *aDIR; aStatStruct = (struct stat*)emalloc3(sizeof(struct stat)); aDirent = (struct dirent*)emalloc3(sizeof(struct dirent)); aDIR= (DIR*)emalloc3(sizeof(DIR)); aDIR = opendir(dicomPath); Any idea ? Thanks ! Gerard _______________________________________________ Discuss-gnustep mailing list Discuss-gnustep@... http://lists.gnu.org/mailman/listinfo/discuss-gnustep |
|
|
|
|
|
Re: Compiling Osirix with GnuStepOn 21 Oct 2009, at 15:58, delafond gerard wrote:
> Papyrus3/PapyFiles3.c:84: attention : deprecated conversion from > string > constant to ‘char*’ You can safely ignore these. The problem is that string constants are const char*, and implicitly casting them to char* drops the qualifier. As string constants are, by definition, immutable, any attempt to modify them will cause a run time abort. People often write char* when they mean const char* though, so it's not really a problem. I think you can turn this option off with -Wno-write-strings or something similar. > Papyrus3/PapyFiles3.c:153: erreur: invalid conversion from ‘void*’ > to ‘char*’ This one just looks strange. I can't think of any situations where this would not work. What is the code that is causing it? You should be allowed to cast from a void* to any pointer type, and at the most this kind of cast should raise a warning, not an error. David -- Send from my Jacquard Loom _______________________________________________ Discuss-gnustep mailing list Discuss-gnustep@... http://lists.gnu.org/mailman/listinfo/discuss-gnustep |
|
|
Re: Compiling Osirix with GnuStepLe mercredi 21 octobre 2009, David Chisnall a écrit :
> > > Papyrus3/PapyFiles3.c:153: erreur: invalid conversion from ‘void*’ > > to ‘char*’ > > This one just looks strange. I can't think of any situations where > this would not work. What is the code that is causing it? You should > be allowed to cast from a void* to any pointer type, and at the most > this kind of cast should raise a warning, not an error. > gPapyFile [theFileNb] = theFp; if (inToOpen && inNameP) { 153-> gPapyFilePath[ theFileNb] = malloc( strlen( inNameP)+1); strcpy( gPapyFilePath[ theFileNb], inNameP); } Thanks for your help. Gerard _______________________________________________ Discuss-gnustep mailing list Discuss-gnustep@... http://lists.gnu.org/mailman/listinfo/discuss-gnustep |
|
|
Re: Compiling Osirix with GnuStepOn 21 Oct 2009, at 18:39, delafond gerard wrote:
> 153-> gPapyFilePath[ theFileNb] = > malloc( > strlen( inNameP)+1); Assuming that gPapyFilePath[ theFileNb] is a pointer type of some kind, that ought to work. How is gPapyFilePath declared? David -- Sent from my IBM 1620 _______________________________________________ Discuss-gnustep mailing list Discuss-gnustep@... http://lists.gnu.org/mailman/listinfo/discuss-gnustep |
|
|
Re: Compiling Osirix with GnuStepLe mercredi 21 octobre 2009, David Chisnall a écrit :
> On 21 Oct 2009, at 18:39, delafond gerard wrote: > > 153-> gPapyFilePath[ theFileNb] = > > malloc( > > strlen( inNameP)+1); > > Assuming that gPapyFilePath[ theFileNb] is a pointer type of some > kind, that ought to work. How is gPapyFilePath declared? > > David > > -- Sent from my IBM 1620 looks like this : Papyrus3/PapyGlobalVar3.h:WHERE3 char *gPapyFilePath [kMax_file_open]; All the code is available on svn co https://osirix.svn.sourceforge.net/svnroot/osirix osirix Thanks Gerard _______________________________________________ Discuss-gnustep mailing list Discuss-gnustep@... http://lists.gnu.org/mailman/listinfo/discuss-gnustep |
| Free embeddable forum powered by Nabble | Forum Help |