Ich versuche __atomic_load_n
von der gcc
atomic builtins Seite nutzen zu können, mitMit gcc atomare Builtins?
gcc -Wall -march=i686 -std=gnu99 ll.c -o ll
kompilieren, aber es sagt mir, es kann nicht
warning: implicit declaration of function ‘__atomic_load_n’
Ich dachte, es wäre genug gcc
mit den zur Verfügung zu stellen arch
und die march
Flags (und dafür gesorgt, indem Sie die std=gnu99
Flag setzen), aber ohne Erfolg. In der Tat, auch wenn ich für die gemeinsamen __GCC_VERSION__
oder __GNUC__
Makros zu testen scheinen nicht Werte zu haben ... aber ich habe eine schöne Vanille gcc
Installation, die, die in Unbuntu kommt.
Ich weiß, ich mache etwas albern, aber ich kann nicht herausfinden, was. Ich habe gcc (Ubuntu/Linaro 4.6.3-1ubuntu5) 4.6.3
Code sieht so aus: es ist eine Funktion, die (noch) nie aufgerufen wird, so ist das Problem zur Kompilierzeit.
type* func(type* p) {
type* q = __atomic_load_n (p, __ATOMIC_SEQ_CST);
}
Können Sie uns den Code zeigen, der Ihnen den Fehler gibt? – NPE
@NPE: Sicher, die Fragen wurden aktualisiert. –
Ich kann Ihren Code kein Problem (gcc 4.7.2) kompilieren, sobald ich Typdef 'type' in' int' tippe. Wenn Sie ein Problem mit Ihrer Compiler-Installation vermuten, versuchen Sie vielleicht, ein nicht-trivales, aber sauberes Projekt damit zu erstellen, um zu sehen, was passiert? – NPE