2009-05-13 5 views
1

Я пытаюсь выполнить ссылку ранее сгенерированных файлов .obj (используя последнюю версию MSVC).Игнорировать комментарий #pragma (lib, ...)?

Когда были созданы эти .obj, источник код, указанный:

#pragma comment(lib, ...) 

Таким образом, компоновщик пытается связать с статических библиотек, указанных в источнике. Есть ли способ проинструктировать компоновщика игнорировать эти библиотеки, поэтому я могу указать свой собственный?

например, если часть источника сделал следующее:

#pragma comment(lib, foo.lib) 

Во время связи, я хотел бы линкер игнорировать «foo.lib», и вместо ссылки против «bar.lib».

ответ

1

Почему бы не изменить источник (директивы #pragma)?

От comment MSDN страницы:

Lib

мест библиотека-поиска записи в файле объекта. Этот тип комментария должен сопровождаться параметром commentstring, содержащим имя (и, возможно, путь) библиотеки, которую вы хотите, чтобы линкер выполнял поиск. Имя библиотеки следует за библиотечными записями по умолчанию в объектном файле; компоновщик ищет эту библиотеку так же, как если бы вы назвали ее в командной строке при условии, что библиотека не указана с/nodefaultlib. Вы можете разместить несколько записей в библиотеке в том же исходном файле; каждая запись появляется в объектном файле в том же порядке, в котором она встречается в исходном файле.

Если порядок библиотеки по умолчанию и добавленная библиотека важны, компиляция с помощью/Zl-переключателя предотвратит размещение имени библиотеки по умолчанию в объектном модуле. Вторая прагма комментария может быть использована для вставки имени библиотеки по умолчанию после добавленной библиотеки. Библиотеки, перечисленные в этих прагмах, будут отображаться в объектном модуле в том же порядке, что и в исходном коде.

Вы также можете использовать опцию NODEFALTLIB компоновщика, чтобы остановить foo.lib от того связаны между собой, и указать bar.lib, как другие Lib файлы (т.е. с помощью панели компоновщика Properties).

В противном случае переименуйте bar.lib в foo.lib (нахальный раствор).

 Смежные вопросы

  • Нет связанных вопросов^_^