【问题标题】:wxWidgets jpeg library build issuewxWidgets jpeg 库构建问题
【发布时间】:2018-07-26 01:47:50
【问题描述】:

我正在尝试将 wxWidgets 库构建到 Fedora 27 操作系统上的自定义路径中。

我实现了wx-config 文件路径识别并与cmake 执行一起工作。另外,我根据修改后的 wxWidgets finder cmake 文件加载库并包含目录,该文件成功设置了wx-config 自定义路径。

但是 cmake 不会加载我的 wxWidgets 配置。我的意思是,无法创建wx_gtk2u_jpeg-3.1 构建的库(应该是/usr/lib/libwx_gtk2u_jpeg-3.1.so)。我的项目需要来自 wxWidgets 的 jpeg 依赖项。

我确定问题不在于 cmake 文件。但是,问题在于 wxWidgets 编译,因为 cmake 可以找到其他构建的依赖项到 /usr/lib/

我实际上安装了libjpeg-turbo-devel 包,其中包含构建wxWidgets 所需的libjpeg.h,但没有成功创建libwx_gtk2u_jpeg-3.1.so

最奇怪的部分是$ wx-config --libs 显示了要链接的wx_gtk2u_jpeg-3.1 lib 以及应该建立它的提示路径。

用于构建的 wxWidgets 命令:

$ ./configure --with-libjpeg=builtin --with-libpng=builtin --with-libtiff=builtin --with-zlib=builtin --with-expat=builtin --enable-webviewwebkit=no --prefix=/opt/cpp_dependencies/2018Q1/usr'
$ make -j 4
$ make install

您可以查看我的 cmake 文件、cmake 输出和 wxWidgets 构建输出以重现它:https://gist.github.com/jjalvarezl/b70accae269ef56c56010bedf157c27f

您可以看到 wxWidgets 构建输出文件的第 1543 行,jpeg 库为 buildin,以及同一文件的第 1564 行,make install 命令将所有 libwx_<lib_name>.so 库安装到最终的 /usr/lib 路径中。无论如何,没有人包含所需的库。

【问题讨论】:

    标签: c++ cmake shared-libraries wxwidgets building


    【解决方案1】:

    请显示确切的错误消息,因为不清楚实际问题是什么。我能说的是,不同的内置版本的 3rd 方库,例如 libjpeg,总是静态库,即使 wxWidgets 本身是共享的。 IE。你永远不会有libwx_gtk2u_jpeg-3.1.so,只有.a

    我还强烈建议在 Unix 系统下使用 3rd 方库的系统版本。这意味着您的 wxWidgets 应用程序将从您的操作系统供应商处获得安全更新,并且您不会因为在应用程序中使用同一库的 2 个不同版本而面临任何不兼容的风险。

    【讨论】:

    • cmake 输出第 11 行出现错误:wxWidgets not found due to following missing libraries: wx_gtk2u_jpeg-3.1。由于兼容性问题,我的 cmake 项目使用具有特定版本的库。
    • 对不起,我不知道这个错误信息是从哪里来的。在 Unix 下与 wxWidgets 链接的规范方法是使用 $(wx-config --libs) 输出,它确实应该工作。
    猜你喜欢
    • 1970-01-01
    • 2010-10-09
    • 1970-01-01
    • 1970-01-01
    • 2018-08-18
    • 2017-06-24
    • 2011-01-23
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多