2011-12-06 42 views
0

我想静态链接到FreePascal应用程序lua。除了这个之外,我已经修复了链接过程中的所有错误。 未定义的符号:__strtod链接错误:未定义的符号:___strtod

所有其他未定义的符号,我能够通过libkernel32.a,从MinGW的编译器,我使用的编译,我链接liblualib.a libuser32.a和libmsvcr.a链接中代替使用dll。

我想这个静态链接,而不是动态链接。那么,有没有人碰巧知道哪个.a lib文件___strtod被定义,或者知道我可以如何搜索并找到它。

据我所知这是一个C99函数,MinGW,GCC支持它。所以,我认为它会出现在其中的一个lib(.a)文件中。

谢谢,

+1

'strtod'也在C89描述(具有相同的功能在C99)。 – pmg

回答

0

原来,我没有回来,并回答了我的问题,当我得到它的工作。

我在网上搜索了C中的函数,然后使用MinGW将其编译为静态库。使用我创建的libstrtod.a文件,我可以将它静态链接到由FreePascal编译的程序中。

我自那时以来不得不放弃这个项目的来源,因为它是在合同上,我会尽量记住做一个这样的例子来分享。

感谢所有的回复和建议。

待续...

0

它是C库libc的一部分。但是我不知道你可以静态链接到它。 (是否还有系统提供libc的静态版本?)

Libc应该在C程序中默认链接。

+0

似乎cygwin有一个libc.a文件,我将它链接起来,但它不包含___strdot符号。 –

0

只需创建一个使用库的静态版本的make文件即可。 静态库通常比动态库大得多。 你可以下载newlib并直接使用lua运行时编译源代码, 我猜测newlib可以和MinGW一起工作。

我希望这会有所帮助。