On Sunday, 27 November 2016 at 13:22:36 UTC, Nicholas Wilson wrote:

The missing symbol is the struct initialiser for neo4j_map_entry_t. Not sure why is not being generated (it should), possibly because of the union.

That seems like a bug please report it. http://issues.dlang.org/

Thanks for the answer, Nicholas!

I've created a small example:

source/app.d
--------------------
import mytypes;

void main()
{
    myunion[2] t;
}
--------------------
include/mytypes.d:
--------------------
module mytypes;

union myunion
{
    double b;
};
--------------------
dub.json:
--------------------
"importPaths": ["include"]
--------------------

Output:
_____________________
dmd -c -of.dub/build/application-debug-posix.osx-x86_64-dmd_2072-99D5F2E2DCAF9FF19FE5AE403C120D52/testomat.o -debug -g -w -version=Have_testomat -Iinclude source/app.d -vcolumns
Linking...
dmd -of.dub/build/application-debug-posix.osx-x86_64-dmd_2072-99D5F2E2DCAF9FF19FE5AE403C120D52/testomat .dub/build/application-debug-posix.osx-x86_64-dmd_2072-99D5F2E2DCAF9FF19FE5AE403C120D52/testomat.o -g
Undefined symbols for architecture x86_64:
  "_D7mytypes7myunion6__initZ", referenced from:
      __Dmain in testomat.o
ld: symbol(s) not found for architecture x86_64
clang: error: linker command failed with exit code 1 (use -v to see invocation)
Error: linker exited with status 1
FAIL .dub/build/application-debug-posix.osx-x86_64-dmd_2072-99D5F2E2DCAF9FF19FE5AE403C120D52/ testomat executable
dmd failed with exit code 1.
_____________________

If I change the union's variable type to "int" (or any other) it compiles just fine. So the problem seems to be the "double" value.

It also compiles just fine when I move "mytypes.d" into the source/ folder (even with "double"!!!).


Should I still report it as a bug here: https://issues.dlang.org/ ?

Or is it dub related?

Reply via email to