On Saturday, 10 March 2018 at 12:00:12 UTC, Richard wrote:
On Saturday, 10 March 2018 at 07:54:33 UTC, Mike Franklin wrote:
On Saturday, 10 March 2018 at 02:25:38 UTC, Richard wrote:
[snip]
Based on the above this seems to work fine so I'll use this since it's the simplest option.
```
extern(C) int main(int argc, char** argv) {
    return d_main();
}

int d_main() {
  // Do stuff
}
```

You can simplify it further:

```
extern(C) int main(int argc, char** argv {
    //Do stuff
}
```

This compiles but main() is never called btw
```
import core.stdc.stdio;

private alias extern(C) int function(char[][] args) MainFuncType; extern (C) int _d_run_main(int argc, char **argv, void* mainFunc)
{
    MainFuncType mFunc = cast(MainFuncType) mainFunc;
    return mFunc(null);
}

int main() {
  // Do stuff
}
```
I tried compiling with
ldc2 -defaultlib= -debuglib= -mtriple=thumb-none-linux-eabi -mcpu=cortex-m3 --od=. -c -betterC main.d

I think you should not put `-betterC` since you are trying to use _d_run_main, which is only called when in regular mode.

Reply via email to