Я пытаюсь скомпилировать некоторый устаревший код C / C ++ в Mac OS X с помощью gcc 4.2.это было первоначально написано на Windows, используя Visual Studio.Я собираю статическую библиотеку, с которой связан другой код, но я столкнулся с некоторыми трудными для понимания ошибками компоновщика.
Когда я пытаюсь скомпилировать некоторый исходный код для статической библиотеки, компоновщик выдает мне следующие ошибки:
Undefined symbols for architecture i386:
"_read_float", referenced from:
_sub_token_values in libcompengine.a(alparce.o)
Метод read_float находится в библиотеке, и он компилируется.Но когда я сбрасываю символы в библиотеке, используя nm, я вижу, что в libcompengine.a (alparce.o) метод _read_float выглядит как неопределенный:
U _read_float
И далее в файле, где предполагается read_floatчтобы быть определенным, он появляется с искаженным именем:
00000686 t __ZL10read_floatPKj
Может кто-нибудь дать мне какие-либо подсказки относительно того, почему этот метод не решается правильно?Я потратил полдня, пробуя различные флаги компилятора и исходных текстов gcc, но, к сожалению, я еще не выбрал выигрышную комбинацию.