如何在github操作上构建WxWidgets程序



可以这样做吗?我以前有过github操作(PS2软件编译的linux环境(的经验

现在,我正试图从github操作为windows构建一个程序,但我不知道从哪里开始。

我需要设置mingw并构建程序(程序存储在一个代码::blocks项目中,我已经将项目文件转换为Makefile(

https://github.com/israpps/HDL-Batch-installer/

当然可以,为什么不能呢?也许更有用的是,我可以说,我使用以下两种方式之一为自己的几个项目做这件事:

  1. 要么使用wxWidgets二进制文件,即在Linux下使用系统包(Actions使用的Ubuntu环境为wx 3.0.5(,要么在MSW下下载二进制文件(我在那里使用MSVS为建筑下载二进制文件(。在这种情况下,您只需要apt-get installcurl文件,然后构建应用程序
  2. 或者自己编译wxWidgets,如果你已经将其用作自己的Git子模块,这尤其有用,因为你还可以测试你在PR中使用的wx版本的更改。在这种情况下,您需要为wxWidgets本身添加一个构建步骤,这很简单,但我强烈建议缓存构建它的结果,因为否则它可能比构建自己的应用程序花费更长的时间——但缓存它效果很好;恢复高速缓存";在我刚刚看到的构建中,步骤只需要4个(这包括其他一些第三方库,而不仅仅是wx(

可以在Github Actions上构建一个wxWidgets项目,这是我自己刚刚完成的。

以下是一个公共Github项目,演示在Linux、macOS和Windows上使用CMake在Github Actions上构建一个简单的wxWidgets演示程序:https://github.com/saxbophone/wxwidgets-test

我使用CPM.cmake来查找wxWidgets——这个工具试图在系统上找到wxWidget的已安装副本,如果找不到已安装的副本,则从源代码克隆repo和构建。

这不是一个完全简单的过程,我对这个过程中的特定触发点有以下观察:

  1. 在macOS上使用g++编译器构建似乎不起作用(似乎某些Objective-C++代码没有得到正确解释((日志(

  2. 在Linux上构建需要安装GTK3和OpenGL的开发包,这一要求似乎没有记录在wxWidgets从源代码指令构建中。

  3. 在Windows上将wxWidgets构建为共享库(即DLL(会导致许多链接器问题,我通过指定项目始终使用CMake选项DBUILD_SHARED_LIBS=OFF构建静态库来避免这些问题。

  4. wxWidgets程序的CMake目标需要设置CMake属性WIN32,否则,由于Windows区分GUI和控制台程序的方式,main()将出现链接器错误:

    add_executable(demo WIN32 main.cpp)
    
  5. 在树中编译wxWidgets(即作为子项目(非常耗时,因此建议缓存依赖源代码和成功构建的依赖对象(就像我的示例项目一样(,以避免浪费构建信用。在测试时,wxWidgets包含大约527MB的压缩源代码和大约127MB的压缩构建对象。

相关内容

  • 没有找到相关文章

最新更新