Linking C .obj files into Delphi application, resolving standard C dependencies

心不动则不痛 提交于 2019-11-29 15:41:39

问题


I compiled libxml2 with BCC 5.5 command line compiler, now I have lots of .obj files which I'd like to link into my Delphi application. Unfortunately, I get lots of "Unsatisfied forward or external declaration" errors, pointing to standard C library functions like memcpy, open, recv etc ... What should I do to compile it correctly? I'd like to avoid depending on msvcrt.dll or any other external libraries.

Thanks in advance!


回答1:


Depending on the version of Delphi you have, there should be a unit called crtl.dcu with which you can link. Just use the $L directive for each .obj file in a unit that also uses crtl. You may also need to "use" other various units like Windows, WinSock, etc... The point is to provide the symbols and functions to resolve during the link phase.

This is the same technique used to statically link in the DataSnap TClientDataSet code used to also build midas.dll.




回答2:


you should read article of Rudy here "Using C object files in Delphi"




回答3:


Don't use those functions, but rewrite them to call operating system functions (kernel32/system32) directly.



来源:https://stackoverflow.com/questions/1966692/linking-c-obj-files-into-delphi-application-resolving-standard-c-dependencies

标签
易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!