При связывании статической библиотеки с исполняемым файлом символы без ссылок обычно отбрасываются. В моем случае некоторые другие неиспользуемые объекты используются для регистрации их соответствующих классов в factory, и если объекты отбрасываются, эта регистрация не выполняется.
В Unix, где мы используем gcc, я могу передать флаг -whole-archive в компоновщик ld (см. выдержку из документации ld ниже), что делает ld не отбрасывать какие-либо объекты. Есть ли что-то подобное для Visual С++?
- весь-архив
Для каждого архива, указанного в командной строке после `--whole-archive ', включите каждый объектный файл в архив
в ссылке, а не поиск в архиве для требуемого объектные файлы. Обычно это используется для преобразования архивного файла в общая библиотека, заставляющая каждый объект быть включенным в в результате общая библиотека. Эта опция может использоваться несколько раз.