gnustep-dev
[Top][All Lists]
Advanced

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

Re: Building GUI with libobjc2 for Windows MSVC


From: David Chisnall
Subject: Re: Building GUI with libobjc2 for Windows MSVC
Date: Wed, 13 Oct 2021 18:13:52 +0100
User-agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:78.0) Gecko/20100101 Thunderbird/78.14.0

On 13/10/2021 16:08, Frederik Seiffert wrote:
Hi all,

I’ve started looking into building libs-gui for Windows using libobjc2 and the 
MSVC ABI, and I’m down to one linker error that I’m unsure how to deal with:

lld-link: error: undefined symbol: __objc_ivar_offset_NSFileWrapper._icon.☺
referenced by NSFileWrapperExtensions.m:42
               
NSFileWrapperExtensions.m.o:(_i_NSFileWrapper_NSExtensions_setIcon_)

It seems that GUI defines an NSFileWrapper category that accesses an instance 
variable defined in Base here, and that results in this linker error. The class 
definition in Base is correctly annotated with __declspec(dllexport).

I believe that this is a bug in clang. If the class is dllexported then the ivar offset variables for public / protected ivars should be dllexported as well. I think I missed that case when doing the Objective-C support for Windows - I'll take a look tomorrow.

By the way, I've been using vcpkg for another project (on FreeBSD) - it's probably the best way of getting the dependencies for any libraries that GNUstep depends on for the MSVC ABI. It has good CMake integration but can probably be made to work with GNUstep Make (though if you have a CMake build system for GNUstep, it should work very nicely).

David




reply via email to

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