А в Linux вы должны сделать то же самое, флаг компилятора называется -fPIC, если вы хотите создать разделяемую библиотеку. В противном случае на AMD64 и SPARC (и, возможно, на других) произойдет сбой. В архитектуре i386 компоновщик достаточно умен и не разделяет библиотеку в памяти, поэтому он не падает.

аюсь создать статическую библиотеку C / C ++ с использованием Visual Studio 2005. Поскольку выбор библиотеки времени выполнения является опцией компиляции, я вынужден создать четыре варианта моей библиотеки, по одному для каждого варианта библиотеки времени выполнения:

/ MT - статическая библиотека времени выполнения/ MD - библиотека времени выполнения DLL/ MTd - отладка статической библиотеки времени выполнения/ MDd - библиотека отладки DLL

Этокомпилятор параметры, а не параметры компоновщика. Исходя из фона Linux, это кажется странным. Разные библиотеки времени выполнения имеют разные соглашения о вызовах или что-то? Почему разные библиотеки времени выполнения не могут быть разрешены во время компоновки, т.е. когда я связываю приложение, использующее мою статическую библиотеку?

Ответы на вопрос(6)

Ваш ответ на вопрос