Ich habe eine CPP-Quelldatei, die #if/#endif verwendet, um vollständig in bestimmten Builds kompilieren. Dies erzeugt jedoch die folgende Warnung.Was ist der beste Weg, MS Visual C++ Linker Warnung zu beseitigen: "Warnung LNK4221"?
warning LNK4221: no public symbols found; archive member will be inaccessible
Ich dachte über ein Makro Erstellen einer Dummy-Variable oder eine Funktion zu erzeugen, die nicht tatsächlich verwendet werden würde, so würde dieser Fehler gehen weg, aber ich möchte sicherstellen, dass es keine Probleme verursacht, wie die Verwendung von das Makro in mehreren Dateien verursacht, dass der Linker auf mehrfach definierte Symbole bombardiert.
Was ist der beste Weg, diese Warnung loszuwerden (ohne die Warnung in der Linker-Befehlszeile einfach zu unterdrücken)?
FWIW, ich wäre daran interessiert zu wissen, wie es geht, indem Sie die Warnung auf der Linker-Befehlszeile auch unterdrücken, aber alle meine Versuche dort scheinen einfach vom Linker ignoriert zu werden und immer noch den Fehler zu erzeugen. Eine andere Anforderung: Die Korrektur muss in der Lage sein, einzelnen Dateierstellungen oder Unity-Builds standzuhalten (CPP-Datei-Builds kombinieren), da eine unserer Build-Konfigurationen ein Bulk-Build ist (wie ein Unity-Build, aber Gruppen von Bulk-Dateien) als eine einzelne Master-Unity-Datei).
Welche Syntax für den Aufruf des Linkers haben Sie versucht (und es hat nicht für Sie funktioniert)? –
Ich habe "/ ignore: 4221" für Linker und "#pragma warning (disable: 4221)" für die cpp-Datei ausprobiert. Keine funktionierte. – Adisak
Nebenbei - was ist der Zweck der 'Einheitsbildung'? –