Почти настоящий Джерри. Вполне допустимо иметь две функции с одинаковыми именами в двух библиотеках, которые связаны друг с другом. Я делаю это для того, чтобы иметь свои собственные реализации malloc, free, ... Но (большое но) то, что вы должны быть обязательно отменены ВСЕ внешние символы из второго определения в библиотеках. После того, как компоновщик разрешил имя символа, он просто не будет искать второе вхождение символа.
мер в Boost. Я установилвключают каталог в MSVC ++ 2010 в корневой каталог Boost и иметь#include <boost/regex.hpp>
в моем исходном коде. Я установилбиблиотека каталог дляboost\stage\lib
но там есть сотни файлов - по несколько для каждой библиотеки Boost и для boost :: regex:
libboost_regex-vc100-s-1_46.lib libboost_regex-vc100-mt-gd-1_46.lib libboost_regex-vc100-mt-1_46.lib libboost_regex-vc100-mt-s-1_46.lib libboost_regex-vc100-mt-s.lib libboost_regex-vc100-s.lib libboost_regex-vc100-mt.lib libboost_regex-vc100-mt-gd.lib
Как MSVC узнает, какой из всех файлов lib является правильным? Если он сканирует их все на предмет правильных сигнатур функций, означает ли это, что две разные библиотеки, скомпилированные из двух разных источников (не связанных друг с другом), которые могут определять функции с одинаковыми именами и параметрами, не могут находиться в одной папке библиотеки?
И как он узнает, что является правильным среди всех этих регулярных выражений .lib? И затем, каждый файл с1_46
в его имени файла, кажется, совпадает с соответствующим файлом без, я могу безопасно удалить один из двух?