GNUstep gnustepbase 构建 64 位

GNUstep gnustepbase 构建 64 位

我正在尝试在 64 位中构建一个“libgnustep-base.a”文件,这样我就可以使用 gcc 在 cygwin86_64 中编译 Objective-c 代码,在“gnustep-base-1.26.0”文件夹中有一个 make 文件,仅包含这个字符串“@echo You need to use GNU make tocompile the GNUstep Base Library”,首先我发现这个非常非常规和奇怪,还有一个名为“gnustep-make-2.7.0”的文件夹,手册说这是需要完成的第一个构建,我已经完成了“./configure--->make---->make install”,这实际上除了对 C 包含文件进行极长的扫描以检查是否有一些非常通常的函数(例如 printf)存在。

答案1

据我所知,您首先需要下载、配置并安装在/usr/local包中gnustep-make

当然你需要安装gcc-objc,make和其他一些软件包

$ wget https://github.com/gnustep/tools-make/releases/download/make-2_8_0/gnustep-make-2.8.0.tar.gz
$ tar -xf gnustep-make-2.8.0.tar.gz
$ cd gnustep-make-2.8.0
$ ./configure  LDFLAGS="-Wl,--allow-multiple-definition"
$ make install
$ cd ..

你可以对底座做同样的事情

$ wget https://github.com/gnustep/libs-base/releases/download/base-1_27_0/gnustep-base-1.27.0.tar.gz
$ tar -xf gnustep-base-1.27.0.tar.gz
$ cd gnustep-base-1.27.0
$ ./configure LDFLAGS="-Wl,--allow-multiple-definition"

添加Source/common.h

#define TRUE 1
#define FALSE 1

进而

$ make

不幸的是,构建稍后会在链接阶段失败

relocation truncated to fit: R_X86_64_PC32 against undefined symbol `object_getRetainCount_np'

乍一看,部分似乎是libobjc2
https://github.com/gnustep/libobjc2/releases/tag/v2.1

那不喜欢被建造gcc和要求clang。据我所知,Cygwin clang 没有该objC部分,但我可能是错的。

相关内容