
所以,我正在开发一个运行linux的真棒项目,我需要在windows上创build端口。 问题是,libyaml是我的依赖项的一部分,我需要为windows编译它。
所以我得到了我的cygwin环境运行,我运行./configure和make,一切进展顺利:库build立,我有.a文件。
除了生成文件永远不会结束,因为它不能构build的例子:事实certificate一些符号从库中缺less:
undefined reference to `_imp__yaml_parser_initialize' undefined reference to `_imp__yaml_parser_set_input_file' undefined reference to `_imp__yaml_parser_scan' undefined reference to `_imp__yaml_token_delete' undefined reference to `_imp__yaml_parser_delete'
所以,当然,想知道这怎么可能是真实的,我继续search这些符号,事实上,我发现它们是二进制的,尽pipe符号有点不同,你可以看到:
这是钻石inheritanceUB在MinGW中的错误?
链接在windows上提升问题
我如何设置linux编译为windows二进制文件的FORTRAN代码?
MinGW,用控制台构buildGUI应用程序
是否可以不要popup控制台窗口?
$ nm src/.libs/libyaml.a | grep parser_set_input_file 000005a8 T _yaml_parser_set_input_file
所以,这通常是我编译dinamicaly可加载库时如何呈现函数名称。 我嗡嗡的是,为什么链接器不能find这些function? 这个imp来自哪里?
我能做些什么,以便我的程序可以正确链接到libyaml? 除了这些function之外,其他的一切正在运行。
你会成为一个把我从这个恶魔般的连结东西中解救出来的人吗? 我感谢你的关注。
编辑:我一直在这个问题上工作了几个小时。 所以,显然它可能来自于mingw:cygwin的gcc在编写例子时没有任何问题。 但是错误依然存在,即使我试图用cygwin的gcc来做。 我开始厌倦了这个迟钝的 *** 作系统。 每次我在windows上开发时,我花的时间都比解决问题的时间多。 为什么总是会有这样的痛苦?
是不是有一个简单的方法来解释链接器不search这些函数的名称改名?
编辑:我发现这个: http : //cygwin.com/ml/cygwin/2001-04/msg00942.HTML看起来像一个类似的问题,有人用ncurses。 虽然我无法做出任何事情。
如何使用mingw与msys在windows上编译Googletest?
从GCC获取预定义的macros,没有临时文件
GDB windows? 在回溯
Win32资源文件多个翻译
如何将图标添加到mingw-gcc编译的可执行文件?
老线程,但答案仍不清楚。 以下版本为0.1.5版本:
./configure CFLAGS="-DYAML_DECLARE_STATIC" --enable-static --disable-shared
总结以上是内存溢出为你收集整理的在Windows上编译libyaml全部内容,希望文章能够帮你解决在Windows上编译libyaml所遇到的程序开发问题。
如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。
欢迎分享,转载请注明来源:内存溢出
微信扫一扫
支付宝扫一扫
评论列表(0条)