Visual Studio 2010 создает статическую библиотеку против моей воли - PullRequest
1 голос
/ 25 августа 2011

Я недавно унаследовал проект, который я очистил и закончил.Тем не менее, есть одна досадная проблема, из-за которой меня просто бесит.Всякий раз, когда я собираю его, он создает статическую библиотеку (файлы * .lib + * .exp) вместе с * .exe.Файл * .lib не нужен.Не могу на всю жизнь найти где в настройках отключить это.Ничто не повредит, чтобы построить это, это просто раздражает.

Ответы [ 2 ]

1 голос
/ 10 сентября 2012

У меня была такая же проблема, и, поскольку я очень педантичный человек, я возражаю.Поэтому я использовал

dumpbin /EXPORTS the_naughty_file.lib

В нежелательном файле .lib, и он показывает:

Microsoft (R) COFF/PE Dumper Version 9.00.21022.08
Copyright (C) Microsoft Corporation.  All rights reserved.

Dump of file E:\my-projects\Robotics\SLAM_plus_plus\bin\Release\SLAM_plus_plus6.lib

File Type: LIBRARY

     Exports

       ordinal    name

                  ??4_Init_locks@std@@QAEAAV01@ABV01@@Z (public: class std::_Init_locks & __thiscall std::_Init_locks::operator=(class std::_Init_locks const &))

  Summary

      DB .debug$S
      14 .idata$2
      14 .idata$3
       4 .idata$4
       4 .idata$5
      14 .idata$6

И через некоторое время поиска в Google, я нашел сообщение ,объясняется, что это автоматически сгенерированная функция, которая генерируется только при использовании динамически связанной библиотеки времени выполнения (статическая не делает этого).

Чтобы исправить проблему, либо перейдите на Свойства проекта > C ++ > Препроцессор и добавьте:

_STATIC_CPPLIB

Или перейдите к Свойства проекта > C ++ > Генерация кода и измените Runtime Library на Многопоточный (MT) .

Теперь надоедливые файлы исчезли, ууу :).Протестировано в Visual Studio 2008, хотя.Но если это не сработает, просто используйте dumpbin / EXPORTS на .lib, чтобы отследить экспорт и опубликовать его здесь.

0 голосов
/ 25 августа 2011

Либо проект обозначен как статическая библиотека, либо в решении есть проект, который является статической библиотекой.

...