Thread overview | ||||||
---|---|---|---|---|---|---|
|
September 17, 2012 undefined reference to `_D6deimos6python6Python12__ModuleInfoZ' | ||||
---|---|---|---|---|
| ||||
With a deimos header file, I expect to need only to pass the dpath to it and the library it references to dmd, e.g. stuff - deimos - python - Python.d dmd <otherstuff> -Istuff -L-lpython2.7 I should not need to actually pass stuff/deimos/python/Python.d to dmd. Unfortunately, that is currently not the case, and I am having a difficult time trying to figure out what is getting in my way. been thumbing through nm output lately. Anyone have any suggestions? |
September 18, 2012 Re: undefined reference to `_D6deimos6python6Python12__ModuleInfoZ' | ||||
---|---|---|---|---|
| ||||
Posted in reply to Ellery Newcomer | On 09/17/2012 04:16 PM, Ellery Newcomer wrote:
> With a deimos header file, I expect to need only to pass the dpath to it
> and the library it references to dmd, e.g.
>
> stuff
> - deimos
> - python
> - Python.d
>
> dmd <otherstuff> -Istuff -L-lpython2.7
>
> I should not need to actually pass stuff/deimos/python/Python.d to dmd.
>
> Unfortunately, that is currently not the case, and I am having a
> difficult time trying to figure out what is getting in my way.
>
> been thumbing through nm output lately.
>
>
> Anyone have any suggestions?
>
Found one little gotcha.
In a templated function in my header file, I make a call to enforce. When the function is not called [instantiated], all is well. When the function is called, it generates yon undefined reference to __ModuleInfoZ.
I guess this is because D needs a pointer to the module in order to look up enforce?
|
September 19, 2012 Re: undefined reference to `_D6deimos6python6Python12__ModuleInfoZ' | ||||
---|---|---|---|---|
| ||||
Posted in reply to Ellery Newcomer | On Tuesday, 18 September 2012 at 04:56:27 UTC, Ellery Newcomer wrote:
> In a templated function in my header file, I make a call to enforce. When the function is not called [instantiated], all is well. When the function is called, it generates yon undefined reference to __ModuleInfoZ.
>
> I guess this is because D needs a pointer to the module in order to look up enforce?
What does the call to enforce look like? The error isn't from the compiler so you are pulling in a symbol which isn't in your object files.
|
September 19, 2012 Re: undefined reference to `_D6deimos6python6Python12__ModuleInfoZ' | ||||
---|---|---|---|---|
| ||||
Posted in reply to Jesse Phillips | On 09/19/2012 01:30 PM, Jesse Phillips wrote: > On Tuesday, 18 September 2012 at 04:56:27 UTC, Ellery Newcomer wrote: > >> In a templated function in my header file, I make a call to enforce. >> When the function is not called [instantiated], all is well. When the >> function is called, it generates yon undefined reference to >> __ModuleInfoZ. >> >> I guess this is because D needs a pointer to the module in order to >> look up enforce? > > What does the call to enforce look like? The error isn't from the > compiler so you are pulling in a symbol which isn't in your object files. here is an older file, as I haven't committed recently, but it shows the identical call: https://bitbucket.org/ariovistus/pyd/src/364451b5d732/infrastructure/python/python.d#cl-653 making a call to enforce elsewhere doesn't fix the linker problem. |
Copyright © 1999-2021 by the D Language Foundation