On Saturday, 8 June 2024 at 02:22:00 UTC, Xiaochao Yan wrote:
Hi, I am new to D and is experimenting with game development using D and C.

I had some problem when trying to recreate the
https://dlang.org/spec/importc.html

Environment:
Windows 11
gcc.exe (i686-posix-dwarf-rev0, Built by MinGW-W64 project) 8.1.0

Error Message:
```
lld-link: error: undefined symbol: _D4test4mainFZ12printMessageUZv
referenced by test.obj:(_Dmain)

```

```
// .c file
#include <stdio.h>

void printMessage() {
    printf("Hello from C!\n");
}
```

```
// .d file
import std.stdio;
import std.conv;
import test;

void main() {

    writeln("Hello, World!");
    extern (C) void printMessage();
    printMessage();
}
```
Thanks in advance!

Put `printMessage` outside the main function. Inside the main function, it has C linkage, but not C name mangling.

-Steve

Reply via email to