zoukankan      html  css  js  c++  java
  • 过程流水记录-编译Lua srlua使用iup-完结

     不确定make是64或32位版本。
    感觉make版本与问题无关。(仅应关心gcc平台版本)

    报错
    虽然文件存在(..MinGWinlibmpfr-6.dll) 
    但MinGW Installation Manager中没有安装


    出现问题
    手动‘删除’文件后,识别错误

    移除后重新安装

     但为何之前没安装完全?

    继续出错(缺少w32api.h)
    先尝试手动添加项mingw32-w32api-dev(更应该按预设打包添加)

     完成编译,新生成..lualua-5.3.4_Sourcessrcliblua.a。
    重新编译32位srglue、srlua成功

    打包lua,dll为exe,执行异常。
    当从路径移除iuplua,会报错
    当iuplua路径正常,会意外结束
    正常应该
    以上iup.dll没在路径下,所以在IDE下,也应该报错?但其在系统path环境变量下。
    排除系统环境变量的影响,如果iuplua.dll路径正确,iup.dll路径异常,会报错“找不到指定模块”(iup.dll)

     但即便iup.dll与iuplua.dll同在Lib目录下,仍报错如上。

    需要iup.dll与test.exe在同目录下,IDE下运行正常。但test.exe仍意外结束(有in无out)。

    如果直接require'iup'报错“找不到指定的程序。”,应该是iup非面向lua,未包含Lua_open接口。

    顺带发现个ZeroBrane Studio的bug,当ctrl+shift+↑/↓移动,涉及最后一行时,会叠加..

    以上异常,使用print(pcall(require,'iuplua'))也无法在test.exe中有反馈..
    如果路径中移除iup.dll,会正常地报错“找不到指定的模块”
    怀疑是iup.dll版本的问题..尝试使用lua-5.3.4_Win32_dllw4_lib中的iup.dll,自IUP - Browse /3.30/Windows Libraries/Dynamic at SourceForge.net,其中的静态库都是.a,如iup.a。
    IDE中与打包的test.exe差异,还是在使用的liblua.a、srlua编译的不同。
    更改了iup的编译版本,问题依旧,尝试更改iuplua的版本iup-3.30-Lua53_Win32_dllw6_lib。
    仍不行,尝试更改编译srlua所用lua5.3的版本lua-5.3.4_Win32_dllw4_lib。(起因在于没有编译srlua的windows msvcrt的方案..)

    使用原生的#Linux build参数(-llua -lm -ldl)编译时报错cannot find -llua/-ldl。

     尝试去掉-llua/-ldl参数,报一系列的错srlua.c:(.text+0x6c): undefined reference to `lua_tolstring' 

    尝试lua-5.3.4_Win32_mingw6_lib(其下有liblua.a,无lua53.dll)。
    同样两种报错,cannot find -llua/-ldl或undefined reference to ..。
    注意,以上两个包中的命名都是liblua53.a(与lua53.dll),而非liblua.a,尝试更名。
    错误变了,仅仅cannot find -ldl。更改makefile,去掉它。编译成功。
    测试成功!

    总结,去掉Linux build预设MYLIBS中的-ldl,配合lua-5.3.4_Win32_dllw4_lib,配合iup-3.30-Lua53_Win32_dllw6_lib、iup-3.30_Win32_dllw6_lib。

    尝试使用dll版本(15)的iup、iuplua。仅iup——iup-XXX_Win32_dllXXX_lib,测试正常;同时iuplua——iup-XXX_Lua53_Win32_dllXXX_lib,测试正常。

  • 相关阅读:
    指针与数组
    深入函数
    到底是使用指针还是引用 ,混合使用以及易错点
    返回值作为标志
    c++的引用(二)
    内联函数
    c++的引用
    指针总结以及常量指针与指向常量的指针与指向常量的常指针
    c++中的 堆和栈
    Java Messages Synchronous and Asynchronous
  • 原文地址:https://www.cnblogs.com/RobertL/p/15059296.html
Copyright © 2011-2022 走看看