c++ - 可以将Gtk +应用程序编译为在Gtk 2和3上运行

标签 c++ c gtk gnome

我想构建一个同时在Gtk 2和Gtk 3环境上运行的应用程序。我有什么选择?

  • 有两个单独的项目?
  • 有两个单独的构建步骤吗?
  • 是否可以构建单个可执行文件,使其能够在两种环境中运行?

  • 我在Linux机器上将C++与cmake一起使用。

    最佳答案

    • Have two separate projects?


    当然,这是一个选择。

    • Have two separate build steps?


    那也是,但是这里的主要目标是产生两个不同的二进制文件(虽然不一定是两个独立的可执行文件,但是请参见下文)。

    • Can a single executable be built so that it is able to run on both environments?


    是的,但是这样做并不简单。您构建的每个二进制文件都将链接到特定的库。否则不能这样,因为v2和v3库之间存在多种名称冲突。

    但是,如果您愿意抽象化Gtk用法,以便提供可插拔的后端,则可以同时提供Gtk + 2和Gtk + 3后端。还有其他。但是,这并非易事,特别是如果您已经使用直接Gtk调用编写了应用程序。

    关于c++ - 可以将Gtk +应用程序编译为在Gtk 2和3上运行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59986010/

    相关文章:

    c - 从文本文件中读取值?

    python - 按用户调整 gtk 小部件的大小

    c - 防止启动程序时弹出终端窗口

    c++ - 如何快速了解任何产品的设计和代码流程?

    c++ - 读取终端中的输出并将其与字符串进行比较

    c - sizeof 函数在外部数组上一直失败

    c - 在 C 中使用指针打印二维数组

    c - Gtk+ 用 C 处理文件

    c++ - 判断变量是否为指针的宏

    c++ - SDL 2.0 中的 SDL_GetVideoSurface() 等效函数