deimos libX11 undefined reference
cal
callumenator at gmail.com
Thu Jul 12 12:44:27 PDT 2012
On Thursday, 12 July 2012 at 16:43:28 UTC, mta`chrono wrote:
> Am 12.07.2012 08:17, schrieb Jacob Carlborg:
>> On 2012-07-12 01:50, cal wrote:
>>
>>> Hmm, looking at the .c header, the function is not even
>>> defined. I think
>>> it is not used, and in this case turning macros into
>>> functions in the
>>> binding generates linker errors. I don't know the best way to
>>> fix this
>>> in the binding (I have simply commented out the functions in
>>> my repo, as
>>> they don't seem to be used). But its worth noting.
>>
>> If a macro is turned into a function it needs to have an
>> implementation.
>>
>
> when marcos are turned into functions they introduce new
> symbols. it's a
> pity, but in that case you have to link to deimos. so deimos
> will become
> a wrapper rather than a binding.
I compile the deimos bindings along with my own code, so that's
not a problem.
The function in question was actually proto'd as an extern, so it
was expecting another library to resolve it. The original C
header did not even define the function (whereas the binding
does, but as an extern dependency) so it would appear that the
macro was/is never used, otherwise using the .c header would
introduce an undefined function. I guess macros can introduce
undefined symbols
as long as they are never used, but the same is only true for .d
bindings if they are introduced as templates like David said.
More information about the Digitalmars-d-learn
mailing list