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