1.libtool 在windows下编译时不加-no-undefined将不产生动态库。
-avoid-version可以去掉库的版本。
2.libtool脚本中max_cmd_len=8192可能会带来问题,当工程比较大文件列表很长超过8192时,在windows下将会出问题,我在编译libsodium时就出现过问题,简单的增加可以解决问题。
3.config.sub脚本会检查host,看看是不是在支持的列表,如果你自己定义工具链,需要修改这个脚本,使得它能通过检查。搜索mingw32可以照着写。
4.compile脚本可以进行命令参数转换。
5.调试使用make -d
根据错误提示找到规则,然后给规则命令写一个钩子脚本(先让命令执行你的脚本)。然后找到make执行的命令与参数。
6.具体的脚本调试使用sh -x – cmd。来看脚本执行情况,预先输出
export PS4='+{$LINENO:${FUNCNAME[0]}}'
可以使你在sh -x 中打印行号和函数。
主要sh -x –,这里的–可以终止sh的参数搜索,在你的cmd中包括–参数时很有用。
7.简单的重载gcc到cl就可以编译出dll,exe,lib。
深入探讨libtool在Windows下的编译技巧及解决方法
本文详细介绍了libtool在Windows环境下编译时的注意事项,包括如何避免版本问题、解决长文件列表导致的问题、配置config.sub脚本来支持自定义工具链、使用compile脚本进行命令参数转换等。同时提供了调试技巧和重载gcc以适应不同需求的方法,旨在帮助开发者顺利编译出dll、exe和lib文件。
3040

被折叠的 条评论
为什么被折叠?



