discuss-gnustep
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

incompatible ABI when using the GUI


From: Lloyd Sargent
Subject: incompatible ABI when using the GUI
Date: Mon, 21 Oct 2013 09:16:11 -0500

Basically, I followed the instructions here: 
http://wiki.gnustep.org/index.php/GNUstep_under_Ubuntu_Linux

With the extra step of building the gui and back.

If I build and run a non-gui program, all works well. Only when I add something 
that uses the gui, like the following:

    //  Created by Tobias Lensing on 2/22/13.
    #import <Foundation/Foundation.h>
    #import <AppKit/AppKit.h>
    #import <dispatch/dispatch.h>
     
    int main(int argc, const char * argv[])
    {    
        @autoreleasepool {
            int multiplier = 7;
            int (^myBlock)(int) = ^(int num) {
                return num * multiplier;
            };
         
            NSLog(@"%d", myBlock(3));
 
            dispatch_queue_t queue = dispatch_queue_create(NULL, NULL); 
 
            dispatch_sync(queue, ^{
                printf("Hello, world from a dispatch queue!\n");
            });
 
    //            dispatch_release(queue);       // ARC takes care of this 
        }
 
        @autoreleasepool {
            [NSApplication sharedApplication];
            NSRunAlertPanel(@"Test", @"Wow it works!", @"OK", nil, nil);
        }
                
        return 0;
    }

I compile this with the following:

    clang `gnustep-config --objc-flags` `gnustep-config --objc-libs` -fobjc-arc 
-fobjc-runtime=gnustep -fblocks -lobjc -ldispatch -lgnustep-gui test.m

It compiles and links with no errors.

When I run it, however, it spits out the following ugly-gram:

    Hello, world from a dispatch queue!
    Objective-C ABI Error: Loading modules from incompatible ABI's while 
loading .GSBackend.m
    a.out: /home/lloyd/projects/ThirdParty/BuildGnuStep/libobjc2/loader.c:53: 
void __objc_exec_class(struct objc_module_abi_8 *): Assertion 
`objc_check_abi_verion(module)' failed.
    Aborted (core dumped)

I have assured myself that there is no other version of libobjc (this is on a 
virtual machine so I can go back redo my steps).

Commenting out the following:

    // [NSApplication sharedApplication];
    // NSRunAlertPanel(@"Test", @"Wow it works!", @"OK", nil, nil);

and everything compiles and runs, aside from the GUI obviously.

How can I have two ABI's when I build everything from scratch? Do I need to 
configure the GUI differently? I've been puzzling over this for a couple of 
weeks.

My goal is to have ARC, the GUI and (optionally) blocks.




reply via email to

[Prev in Thread] Current Thread [Next in Thread]