【问题标题】:wxWidgets and GolangwxWidgets 和 Golang
【发布时间】:2013-07-13 14:41:36
【问题描述】:

我想用 wxWidgets 中的多操作系统 GUI 开发一个 Go 程序,我的开发环境是 WinXP x86。

我想使用 wxWidgets Go 包装器 wxGo,但文档非常简洁,而且该项目似乎已经死了 2 年。

我遇到了go get github.com/JeroenD/wxGogo install github.com/JeroenD/wxGo 的一些错误

go get github.com/JeroenD/wxGo 的结果:

package github.com/JeroenD/wxGo
    imports github.com/JeroenD/wxGo
    imports github.com/JeroenD/wxGo: no Go source files in C:\Documents and Settings\dell\Mes documents\gopath\src\github.com\JeroenD\wxGo

go install github.com/JeroenD/wxGo 的结果:

can't load package: package github.com/JeroenD/wxGo: no Go source files in C:\Documents and Settings\dell\Mes documents\gopath\src\github.com\JeroenD\wxGo

我尝试关注 JeroenD 的 github 上的 Building.txt 文档。第一次,我下载并安装了 wxWidgets,示例代码能够编译(使用 MinGW),但我无法从源代码编译 wxWidgets 库。第二次,我下载并安装了wxPack,已经编译了libs/dll。在这里,问题是我无法编译 wxWidgets 示例。

正如 JeroenD 的 github 的 Buiding.txt 文档中所述,我安装了 SWIGWIN,但没有从源代码编译它,因为 SWIG 现在支持 Go(来自 SWIG 的文档)。但现在,我不知道如何处理包装器 (wxGo)、wxWidgets dll/libs 和 SWIG。我想我读到 SWIG 需要 *.i 文件才能将语言绑定到另一种语言,但我在 wxWidgets 文件夹中找不到任何文件,也许我必须从另一个 wxWidgets 绑定中获取这些文件(wxLua 和 wxPython 在它们的回购)。

我的目标只是让 wxWidgets 库与 Go 一起工作,以便能够在 wxWidgets 中编写多操作系统 GUI,我有点惊讶的是,没有人发布 JeroenD 的包的问题,​​也不想让 wxWidgets 与 Go 一起工作。

您可能会问,使用 go-gtk 构建 gtk GUI 不是一个解决方案,因为在我的项目中需要有一个看起来是原生操作系统的多操作系统 GUI(如果您有一个看起来像原生且使用更简单,请告诉我)。

【问题讨论】:

    标签: user-interface go installation wxwidgets wxgo


    【解决方案1】:

    根据Building.txt文件:

    To build the wxGo library:
    cd wx
    make install
    

    因此,尽管这是一个 Go 包,但它似乎并没有使用任何实际的 Go 代码(如果您查看 github.com/JeroenD/wxGo,您将看不到任何 .go 文件)。

    我认为,在这种情况下,您需要使用git(而不是go get)和make install 而不是go install

    在 Windows 上,您可能希望获得 Git for Windows 安装程序以简化此过程。

    一旦构建完成,您就可以使用了

    import "wx"
    

    在你的 go 代码中像往常一样(https://github.com/JeroenD/wxGo/blob/master/example/minimal/minimal.go 的最小示例)

    【讨论】:

    • 我在 Windows 上(使用 MinGW),所以我执行的命令是 %GOPATH%\src\github.comJeroenD\wxGo\wx>mingw32-make install,结果如下:Makefile:12: C:\Go\/src/Make.inc: No such file or directory Makefile:28: C:\Go\/src/Make.pkg: No such file or directory mingw32-make: *** No rule to make target 'C:\Go\/src/Make.pkg'. Stop. 然后我将 JeroenD 的 github 中的 Make.pkg 文件放在%GOROOT%\src\ 文件夹,现在上一条命令的结果是:C:\Go\/src/Make.pkg:9: /src/Make.common: No such file or directory C:\Go\/src/Make.pkg:61: *** missing separator. Stop.
    • 尝试从 Git-Bash(Windows 的 Git 附带的 Bash 版本)而不是 CMD.EXE 或 Powershell 运行 mingw32-make,因为它可能希望文件分隔符是正斜杠而不是反斜杠。
    • 不,Git-Bash 没有帮助(完全相同的结果)。我从golang's github 下载了所需的Make.commonMake.inc 文件并将它们放在%GOROOT%\src\ 文件夹中。我的错误是在 %GOROOT%\src\Make.pkg 的第 n°212 行缺少“-intgosize 32”参数。这是我的新错误:我的评论太长了,这里是:link 我现在正在寻找 dlimpexp.h 和 version.h
    • 如果您设法让它工作,您能否回答您的问题并将其标记为正确?将来对其他人有用。谢谢!
    • 好的,下载并放入%GOPATH%\src\github.comJeroenD\wxGo\wx文件夹dlimpexp.hversion.h(取自wx github,我也有同样的错误。跨度>
    【解决方案2】:

    wxGO 用于 GO 的 wxWidgets 包装器已上线 wxGO MultiOS

    【讨论】:

    • 因为这似乎不再维护 [根据 2020 年],是否有合适的替代品?
    【解决方案3】:

    QML 可能是更好的选择,它有助于处理 wxWidget 或 QT 内衣。

    【讨论】:

    • QML 似乎是一个很棒的工具,但它是为 Qt 设计的,所以我认为它超出了我的范围,我没有阅读任何与使用 QML 处理 wxWidgets 相关的内容。你能给我一个链接或解释它对 wxWidgets 有什么帮助吗?
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-11-08
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-08-03
    • 2017-02-22
    相关资源
    最近更新 更多