cloudwu / iupmingw

IUP all in one
37 stars 15 forks source link

云风你好 #1

Open guobin8205 opened 6 years ago

guobin8205 commented 6 years ago

1.直接下载你的exe运行提示module 'scintilla' not found。 2.发现Revision4360是编译不了的,应该是4366? 3.用你的makefile编译的话,最终生成iup.exe(596KB),iupluaimglib.dll(416KB),luaiup.dll(1573KB),scintilla.dll(3920KB)这几个文件,按你的makefile是应该生成这几个文件,运行iup simplenotepad.lua也打开了对话框,但是对话框是multiple Lua VMs detected, 看起来像是工程配置的问题? 我是用ubuntu16.0 + gcc 5.3.1编译的。

cloudwu commented 6 years ago

multiple Lua VMs detected 是指你的 lua 多次链入了二进制模块,如果是 linux 应把 lua 静态链接到主程序,其它模块都不要链接 lua 的静态库;如果是 windows 应该把 lua 编译成 lua53.dll ,然后其它模块全部动态链接这个 dll 。

ps. 这个 makefile 仅供 windows/mingw 使用,别的系统请自己用 iup 官方构建流程。

guobin8205 commented 6 years ago

谢谢大神解答, lua 多次链入的问题已经搞好,我发现这个scintilla.dll载入不了,出现error loading module 'scintilla' from file ,是这个srcscinilla不是最新的吗?没有看到luaopen之类的支持lua载入的代码,如果不用这个iup能正常使用

cloudwu commented 6 years ago

scintilla 的 lua 入口在这里 https://github.com/cloudwu/iupmingw/blob/master/luascintilla.c ,有链入吗?

guobin8205 commented 6 years ago

我是按你的makefile来编译的,有链入这个,我再检查一下,而且由你给出的那个realese版的exe也会报这个问题。

cloudwu commented 6 years ago

我把编译好的版本删了,那个是之前静态链接的,不能和新加入的 dll 兼容。现在全部动态链接了。

cloudwu commented 6 years ago

今天新加了个 release, 基于 R4592 。上传了刚才自己编译的版本。

guobin8205 commented 6 years ago

我刚刚看了下我的编译输出,应该是链入了 x86_64-w64-mingw32-g++ --shared -o scintilla.dll o/AutoComplete.o o/CallTip.o o/Catalogue.o o/CellBuffer.o o/CharClassify.o o/ContractionState.o o/Decoration.o o/Document.o o/Editor.o o/ExternalLexer.o o/Indicator.o o/KeyMap.o o/LineMarker.o o/PerLine.o o/PositionCache.o o/RESearch.o o/RunStyles.o o/ScintillaBase.o o/Selection.o o/Style.o o/UniConversion.o o/ViewStyle.o o/XPM.o o/CaseConvert.o o/CaseFolder.o o/EditModel.o o/EditView.o o/MarginView.o o/LexA68k.o o/LexAbaqus.o o/LexAda.o o/LexAPDL.o o/LexAsn1.o o/LexASY.o o/LexAU3.o o/LexAVE.o o/LexAVS.o o/LexBaan.o o/LexBash.o o/LexBasic.o o/LexBullant.o o/LexCaml.o o/LexCLW.o o/LexCmake.o o/LexCOBOL.o o/LexCoffeeScript.o o/LexConf.o o/LexCPP.o o/LexCrontab.o o/LexCsound.o o/LexCSS.o o/LexD.o o/LexECL.o o/LexEiffel.o o/LexErlang.o o/LexEScript.o o/LexFlagship.o o/LexForth.o o/LexFortran.o o/LexGAP.o o/LexGui4Cli.o o/LexHaskell.o o/LexHTML.o o/LexInno.o o/LexKix.o o/LexLisp.o o/LexLout.o o/LexLua.o o/LexMagik.o o/LexMarkdown.o o/LexMatlab.o o/LexMetapost.o o/LexMMIXAL.o o/LexModula.o o/LexMPT.o o/LexMSSQL.o o/LexMySQL.o o/LexNimrod.o o/LexNsis.o o/LexOpal.o o/LexOScript.o o/LexPascal.o o/LexPB.o o/LexPerl.o o/LexPLM.o o/LexPO.o o/LexPOV.o o/LexPowerPro.o o/LexPowerShell.o o/LexProgress.o o/LexPS.o o/LexPython.o o/LexR.o o/LexRebol.o o/LexRuby.o o/LexScriptol.o o/LexSmalltalk.o o/LexSML.o o/LexSorcus.o o/LexSpecman.o o/LexSpice.o o/LexSQL.o o/LexTACL.o o/LexTADS3.o o/LexTAL.o o/LexTCL.o o/LexTCMD.o o/LexTeX.o o/LexTxt2tags.o o/LexVB.o o/LexVerilog.o o/LexVHDL.o o/LexVisualProlog.o o/LexYAML.o o/LexKVIrc.o o/LexLaTeX.o o/LexSTTXT.o o/LexRust.o o/LexDMAP.o o/LexDMIS.o o/LexBibTeX.o o/LexHex.o o/LexAsm.o o/LexRegistry.o o/LexBatch.o o/LexDiff.o o/LexErrorList.o o/LexMake.o o/LexNull.o o/LexProps.o o/LexJSON.o o/LexEDIFACT.o o/LexIndent.o o/Accessor.o o/CharacterSet.o o/LexerBase.o o/LexerModule.o o/LexerNoExceptions.o o/LexerSimple.o o/PropSetSimple.o o/StyleContext.o o/WordList.o o/CharacterCategory.o o/PlatWin.o o/ScintillaWin.o o/HanjaDic.o o/iupsci_clipboard.o o/iupsci_folding.o o/iupsci_lexer.o o/iupsci_margin.o o/iupsci_overtype.o o/iupsci_scrolling.o o/iupsci_selection.o o/iupsci_style.o o/iupsci_tab.o o/iupsci_text.o o/iupsci_wordwrap.o o/iupsci_markers.o o/iupsci_bracelight.o o/iupsci_cursor.o o/iupsci_whitespace.o o/iupsci_annotation.o o/iupsci_autocompletion.o o/iupsci_searching.o o/iupsci_print.o o/iupsci_indicator.o o/iup_scintilla.o o/iup_scintilladlg.o o/iup_scintilla_win.o o/il_scintilla.o o/il_scintilladlg.o o/luascintilla.o -lstdc++ -lgdi32 -lmsimg32 -limm32 -lole32 -luuid -lcomdlg32 -loleaut32 -L. -lluaiup -L/usr/local/mingw64/lua53 -llua53

但是执行的时候报这个错 error loading module 'scintilla' from file 'E:\repos\iup\mingw\scintilla.dll': %1 不是有效的 Win32 应用程序。 stack traceback: [C]: in ? [C]: in function 'require' simplenotepad.lua:1: in main chunk [C]: in ?

我下载了你的realese版本(r4592),跟我的报错一样...跟系统版本有关系吗。。我是win10 x64的系统 error loading module 'scintilla' from file 'E:\repos\iup\bin\scintilla.dll': %1 不是有效的 Win32 应用程序。

stack traceback: [C]: in ? [C]: in function 'require' simplenotepad.lua:1: in main chunk [C]: in ? 这个bin目录是下载的realese文件夹

cloudwu commented 6 years ago

scintilla 是 C++ 实现的,你的运行环境应该缺少 libstdc++-6.dll libgcc_s_seh-1.dll 。如果只是玩玩,可以不用 scintilla 这个控件。

guobin8205 commented 6 years ago

嗯,测试以后发现少了以下几个dll导致运行时报错。 libstdc++-6.dll libgcc_s_seh-1.dll libwinpthread-1.dll 建议你把这几个也打到你的release库里面,不然其他人也会报错。