Вы не можете. Для вашего примера вы можете иметь определения от foo.lib
или bar.lib
, но не от обоих (особенно, если вы не можете перекомпилировать библиотеки и установить видимость символов так, чтобы экспортировались только те символы, которые вы хотите). Порядок их привязки к вашему приложению будет зависеть от того, какие определения библиотеки используются (вам придется использовать научный метод, я думаю, первый из них связан победами). Ответ Никласа Ханссона - отличный способ сделать это динамически, но, похоже, вам также не нужно изменять исходное приложение, чтобы динамически выбирать / выбирать символы для извлечения из библиотек.
Если вы действительно хотите, вы можете искажать таблицы символов с помощью шестнадцатеричного редактора, чтобы символы, которые вы не хотели экспортировать, имели разные имена (хак, но это сработало бы). Я знаю, что в Linux есть инструмент под названием objcopy
, который позволит вам сделать это (не уверен в Windows).