Ich habe folgende Projekte in einem Visual Studio 2012-Lösung:Warnung LNK4075, wenn ein C++/CLI-Projekt verweist auf ein statisches lib Projekt mit/ZI (Bearbeiten und Fortfahren)
- Native (keine
/clr
) statisches lib Projekt , kompiliert mit/ZI
für Edit And Continue. - C++/CLI-DLL-Projekt, das auf die obige statische Bibliothek verweist.
Die C++/CLI-Projekt baut mit der folgenden Warnung:
warning LNK4075: ignoring '/EDITANDCONTINUE' due to '/OPT:LBR' specification
Wenn/OPT: NOLBR den Linker-Optionen des C++/CLI-Projekt hinzugefügt wird, wird die Warnung wird:
warning LNK4075: ignoring '/EDITANDCONTINUE' due to '/INCREMENTAL:NO' specification
Jeder Versuch, die inkrementelle Verknüpfungseinstellung des C++/CLI-Projekts zu ändern, ändert die Warnung nicht (C++/CLI-Projekte werden niemals inkrementell verknüpft).
Ich verstehe, dass ich Edit And Continue im C++/CLI-Projekt nicht verwenden kann, weil dies nicht unterstützt wird. Tatsächlich wird durch das Ändern von/ZI nach/Zi (Deaktivieren von Edit And Continue) im statischen Lib-Projekt die Warnung beseitigt, aber das kann ich nicht tun - andere Nicht-CLR-Benutzer dieser Lib müssen Edit And Continue verwenden.
Wie kann ich diese Warnung loswerden, ohne Edit And Continue in der statischen lib zu deaktivieren (und hoffentlich ohne separate Build-Konfiguration für native und CLR-Benutzer der statischen lib)? Ich meine, gibt es eine Möglichkeit, den Linker zu bitten, die /EDITANDCONTINUE
Direktive zu ignorieren, die in der referenzierten statischen Bibliothek eingebettet ist (ähnlich wie /NODEFAULTLIB
/DEFAULTLIB
Direktiven ignorieren kann)?
Ich habe eine minimal VS solution erstellt, die das beschriebene Problem reproduziert.
Ich suchte die Einstellung, wo ich '/ OPT: NOLBR' mit einem Dropdown in VisualStudio festlegen konnte. Es gibt jedoch kein UI-Element dafür. Sie müssen dies als ** Zusätzliche Option ** unter "Konfigurationseigenschaften -> Linker -> Befehlszeile" hinzufügen – eckes