Ошибка ссылки: неопределенный символ: ___strtod - PullRequest
1 голос
/ 06 декабря 2011

Я пытаюсь статически связать lua с приложением FreePascal.Я исправил все ошибки во время ссылки, кроме этой.Неопределенный символ: __strtod

Все остальные неопределенные символы, которые я смог связать через libkernel32.a, libuser32.a и libmsvcr.a из компилятора MinGW, который я использовал для компиляции liblualib.a, который ясвязывание вместо использования dll.

Я хотел бы иметь статическую связь, а не динамическую связь.Итак, кто-нибудь может узнать, в каком файле .a lib определен ___strtod, или узнать, как я могу найти и выяснить это.

Насколько мне известно, это функция C99, и MinGW, GCC ее поддерживают.Итак, я думаю, что это будет в одном из файлов lib (.a), которые идут с ним.

Спасибо,

Ответы [ 3 ]

1 голос
/ 09 апреля 2013

Оказывается, я никогда не возвращался и не отвечал на мой вопрос, когда заставил его работать.

Я искал в Интернете функцию в C, а затем скомпилировал ее в статическую библиотеку, используя MinGW.С файлом libstrtod.a, который я создал, я смог статически связать его с программой, скомпилированной FreePascal.

С тех пор мне пришлось отказаться от исходного кода этого проекта, так как он был по контракту, я постараюсьне забудьте сделать пример этого, чтобы поделиться.

Спасибо за все ответы и предложения.

продолжение следует ...

0 голосов
/ 06 декабря 2011

Просто создайте файл make, который использует статическую версию библиотеки.Статические библиотеки обычно намного больше динамических.Вы можете скачать newlib и скомпилировать исходный код напрямую с помощью среды выполнения lua, я предполагаю, что newlib работает с MinGW.

Надеюсь, это поможет.

0 голосов
/ 06 декабря 2011

Это часть библиотеки C, libc.Однако я не знаю, что вы можете статически ссылаться на него.(Есть ли еще системы, которые предоставляют статические версии libc?)

Libc должен быть связан по умолчанию в программе на Си.

...