Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

undefined reference linker error with separate compillation #95

Open
mdparker opened this issue Jun 21, 2023 · 0 comments
Open

undefined reference linker error with separate compillation #95

mdparker opened this issue Jun 21, 2023 · 0 comments

Comments

@mdparker
Copy link
Member

zorael reported this on 2018-10-07T20:30:35Z

Transfered from https://issues.dlang.org/show_bug.cgi?id=19291

CC List

  • razvan.nitu1305

Description

Manjaro/Arch x86_64, dmd v2.082.0, dub v1.11.0.

The code in the linkererror branch at https://github.com/zorael/kameloso/tree/linkererror compiles in normal mode but gives an undefined reference error when building with dub --build-mode=singleFile.

The error disappears and compilation succeeds if a local import inside a function (main) is moved up to module-level.

$ git clone https://github.com/zorael/kameloso -b linkererror
$ cd kameloso
$ dub build --build-mode=singleFile
/usr/bin/ld: .dub/build/application-debug-linux.posix-x86_64-dmd_2082-6DCE8163999240FCF02537A83F2B5667/main_4e3dbc0b.o: in function _Dmain': /home/zorael/src/kameloso/source/kameloso/main.d:10: undefined reference to _D8kameloso6logger14KamelosoLogger__T8tintImplVE3std12experimentalQCd4core8LogLeveli64ZQByMxFNbNdNiZAya'

--- main.d

import std.experimental.logger;

Logger logger;

{
    import kameloso.logger;  // <--
    string infotint = (cast(KamelosoLogger)logger).infotint;
}

--- logger.d

module kameloso.logger;

import std.experimental.logger;

class KamelosoLogger : Logger
{
{
    super(lv);
}
    {
        return string.init;
    }

    alias infotint = tintImpl!(LogLevel.info);
}

Comments

razvan.nitu1305 commented on 2023-04-28T11:02:57Z

This sounds like a dub bug.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

No branches or pull requests

1 participant