[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Deploying binaries
From: |
Simon Gornall |
Subject: |
Deploying binaries |
Date: |
Sun, 24 Jan 2016 17:34:16 -0800 |
Hi all,
So I’m not *really* trying to get GNUstep installed, what I really want is a
way to compile ARC-aware Objective C (just Foundation) across multiple
platforms (Linux, Mac, Windows) and give the binaries out to people who don’t
have GNUstep installed. The Mac is easy, and I’m assuming that Linux won’t be
too hard either, haven’t looked at it yet though.
Windows: I don’t really want to have to install an entire GNUstep
implementation, I just want a relatively simple application + bunch of DLLs if
I can get away with it. To that end, I followed the ‘get Gnustep/clang working’
page at https://solarianprogrammer.com/2012/03/21/clang-objective-c-windows/
and compiled a short program on a Windows-8 VM:
#import <Foundation/Foundation.h>
int main(int argc, char **argv)
{
@autoreleasepool
{
NSMutableArray *list = [NSMutableArray new];
[list addObject:@"Hello!"];
[list addObject:@"World!"];
NSLog(@"list: %@", list);
}
return 0;
}
When I run this from within the Msys shell, inside the obj/ subdirectory,I get:
$ ./ttt
2016-01-24 17:19:21.057 ttt [2520] list: (“Hello!”, “World!”)
… as expected. If I run it in a CMD.EXE shell, I get a warning that I’m missing
a DLL (and placing it in the directory leads to the next missing one being
reported, etc.). So after running through that little loop, and copying in the
DLLs that were missing in the standard windows environment…
-rw-rw-rw- 1 simon staff 10101741 24 Jan 17:04 gnustep-base-1_24.dll
-rw-rw-rw- 1 simon staff 118546 24 Jan 17:08 libffi-5.dll
-rw-rw-rw- 1 simon staff 118784 24 Jan 17:01 libgcc_s_dw2-1.dll
-rw-rw-rw- 1 simon staff 2060376 24 Jan 17:09 libgcrypt-11.dll
-rw-rw-rw- 1 simon staff 3438376 24 Jan 17:09 libgnutls-26.dll
-rw-rw-rw- 1 simon staff 215716 24 Jan 17:11 libgpg-error-0.dll
-rw-rw-rw- 1 simon staff 1038350 24 Jan 17:09 libiconv-2.dll
-rw-rw-rw- 1 simon staff 15189954 24 Jan 17:12 libicudata46.dll
-rw-rw-rw- 1 simon staff 2518394 24 Jan 17:10 libicui18n46.dll
-rw-rw-rw- 1 simon staff 1590522 24 Jan 17:10 libicuuc46.dll
-rw-rw-rw- 1 simon staff 101390 24 Jan 17:11 libintl-8.dll
-rw-rw-rw- 1 simon staff 329671 24 Jan 17:11 libp11-kit-0.dll
-rw-rw-rw- 1 simon staff 978958 24 Jan 17:11 libstdc++-6.dll
-rw-rw-rw- 1 simon staff 3959238 24 Jan 17:10 libxml2-2.dll
-rw-rw-rw- 1 simon staff 100366 24 Jan 17:10 libz-1.dll
-rw-rw-rw- 1 simon staff 659799 24 Jan 17:07 objc-4.dll
-rw-rw-rw- 1 simon staff 94300 24 Jan 17:10 pthreadGC2.dll
… In CMD.EXE I see:
C:\GNUstep\msys\1.0\home\simon\src\test\obj> ttt
2016-01-25 01:12:13.043 ttt [656] File NSConcreteMapTable.m:537. In
NSEnumerateMapTable Null table argument supplied
2016-01-24 17:12:13.043 ttt[ [656] list: (“Hello!”, “World!”)
… so the program runs, but there’s that worrying error about an uninitialised
map-table. Anyone any clues ?
Interestingly, once the DLLs are all copied into the obj/ subdirectory, the
Msys shell has the same behaviour - which sort of seems like its telling me I
have the wrong DLL in place, or there’s some config I need to do to set stuff
up that the standard installation “just has”.
Any help much appreciated :)
Simon
- Deploying binaries,
Simon Gornall <=