Hvordan kan jeg bruge clang atombiblioteket på Windows?

Indlæg af Hanne Mølgaard Plasc

Problem



Jeg har et program, hvis forenklede version er nedenfor:


struct T {
    char data[17]; // Really, anything larger than 16 bytes
};

int main() {
    \_Atomic(struct T) atomic;

    atomic = (struct T) {};

    return 0;
}


Hvis jeg forsøger at kompilere dette program på Windows, får jeg denne fejl:


C:> clang test.c
test-95dcb2.o : error LNK2019: unresolved external symbol \_\_atomic\_store referenced in function main
a.exe : fatal error LNK1120: 1 unresolved externals
clang.exe: error: linker command failed with exit code 1120 (use -v to see invocation)


I clang dokumentationen er der en note, der siger, at du skal bruge linkerflagget -latomic, hvis \_Atomic ikke kan kompileres ned til maskinvejledningen, som i dette tilfælde. Dette flag virker ikke på Windows, selvom:


test-95dcb2.o : error LNK2019: unresolved external symbol \_\_atomic\_store referenced in function main
a.exe : fatal error LNK1120: 1 unresolved externals
clang.exe: error: linker command failed with exit code 1120 (use -v to see invocation)


Jeg bruger Clang 3.9.1. Er der en måde at gøre dette arbejde på, eller understøttes det ikke på Windows endnu?

Bedste reference