Ошибка ссылки: неопределенный символ: ___strtod

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

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

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

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

Спасибо,


person Don Duvall    schedule 06.12.2011    source источник
comment
strtod также был описан в C89 (с той же функциональностью, что и в C99).   -  person pmg    schedule 06.12.2011


Ответы (3)


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

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

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

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

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

person Don Duvall    schedule 09.04.2013

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

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

person sidyll    schedule 06.12.2011
comment
кажется, что у cygwin есть файл libc.a, я связал его, но он не содержит символа ___strdot. - person Don Duvall; 06.12.2011

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

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

person SpagnumMoss    schedule 06.12.2011