_memsetFloat Error with dmd
Maximilian Naderer
maximilian.wallinger at outlook.com
Mon Mar 17 12:31:02 UTC 2025
On Monday, 17 March 2025 at 12:28:38 UTC, Maximilian Naderer
wrote:
> Hello people,
>
> i have the following example. Compiled with dmd and ldc2
>
> dmd main.d -betterC
> ldc2 main.d -betterC
>
> with dmd the compilation fails with
>
> lld-link: error: undefined symbol: _memsetFloat
> >>> referenced by app.obj:(main)
> Error: linker exited with status 1
> C:\dev\dlang\dmd2\windows\bin64\lld-link.exe /NOLOGO
> "app.obj"
> /LIBPATH:"C:\dev\dlang\dmd2\windows\bin64\..\lib64\mingw
>
> The compilation fails only with dmd when I'm not assigning all
> the fields of a struct like in example #3. Is this a compiler
> error ?
>
> ```d
> struct MyStruct {
> float[4] data;
> float[16] matrix;
> }
>
> extern(C) int main() {
>
>
> MyStruct sWorks = MyStruct(
> data: [1.0f, 2.0f, 3.0f, 4.0f],
> matrix: [
> 1.0f, 0.0f, 0.0f, 0.0f,
> 0.0f, 1.0f, 0.0f, 0.0f,
> 0.0f, 0.0f, 1.0f, 0.0f,
> 0.0f, 0.0f, 0.0f, 1.0f
> ]);
>
> MyStruct sWorks2;
> sWorks2.data = [ 1.0f, 0.0f, 0.0f, 1.0f ];
>
> MyStruct sNotWorking = MyStruct(
> data: [ 1.0f, 0.0f, 0.0f, 1.0f ],
> matrix: [
> 1.0f, 0.0f, 0.0f, 0.0f,
> 0.0f, 1.0f, 0.0f, 0.0f,
> 0.0f, 0.0f, 1.0f, 0.0f,
> 0.0f, 0.0f, 0.0f, 1.0f
> ]);
>
>
> return 0;
> }
> ```
Sorry the example should have been
```d
struct MyStruct {
float[4] data;
float[16] matrix;
}
extern(C) int main() {
MyStruct sWorks = MyStruct(
data: [1.0f, 2.0f, 3.0f, 4.0f],
matrix: [
1.0f, 0.0f, 0.0f, 0.0f,
0.0f, 1.0f, 0.0f, 0.0f,
0.0f, 0.0f, 1.0f, 0.0f,
0.0f, 0.0f, 0.0f, 1.0f
]);
MyStruct sWorks2;
sWorks2.data = [ 1.0f, 0.0f, 0.0f, 1.0f ];
MyStruct sNotWorking = MyStruct(
matrix: [
1.0f, 0.0f, 0.0f, 0.0f,
0.0f, 1.0f, 0.0f, 0.0f,
0.0f, 0.0f, 1.0f, 0.0f,
0.0f, 0.0f, 0.0f, 1.0f
]);
return 0;
}
```
More information about the Digitalmars-d-learn
mailing list