[VC++] Mehrfache Symbole .obj vs .lib
-
Hallo,
ich habe hier so blöden upstream code, der in mehrere statische .libs organisiert ist, die zur .exe dazugelinkt werden. Jetzt gibt es so ein paar Fälle, wo zwei Quelldateien aus verschiedenen Libs gleichnamige Funktionen exportieren. Welche Implementierung gewählt wird, hängt afaik von der Reihenfolge ab, in der die Bibliotheken beim Linker angegeben werden.
Soweit weit, so schlecht, denn jetzt kann ich nicht einfach komplett alle Quelldateien übersetzen und direkt zur .exe linken, weil ich dann logischerweise mehrere .objs mit identischen Symbolen hätte und der Linker folgerichtig was von multiple symbol definitions kotzt. Vielmehr bin ich gezwungen, wie eigentlich vorgesehen, den Umweg über die static libraries zu gehen, und die zu linken.
Das möchte ich aber nach Möglichkeit vermeiden, um den build process einfach zu halten. Was habe ich in diesem Szenario für Optionen, die sich auf das Bauen beschränken?
Das einzige, was mir einfällt, wäre, über den Compiler den betroffenen Quelldateien ein Makro reinzuforcen, was die unnötigen Funktionen umbenennt, damit es nicht zum Konflikt kommt. Gibt es noch was Besseres?
Geht ums VC++ Toolset 2010/2013.