首页 > 解决方案 > 如何编译 C++ 程序并使用 GLIB 库?

问题描述

我得到了一个C库。我还获得了一些基于上述库构建的C可执行文件。库源代码和可执行文件源代码都使用 GLIB 库。一切正常,但我被要求(除其他外)将库和可执行代码迁移到 C++ 作为开发环境,我将不得不使用仅通过 g++ 而不是 gcc 编译(不幸的是,这不是一个选项)。但是,迁移此代码根本不是一项艰巨的任务,但我无法摆脱 GLIB 函数调用中引发的错误。它们几乎都是 C++ 不支持的所有隐式转换,但关键是我不能(而且我不想)编辑 GLIB 库。我使用“解决”了这些问题-fpermissive编译器标志,但我绝对想避免它。在我看来,我有三个选择:

  1. 继续使用-fpermissive(坏)
  2. 找到一种方法来继续使用没有-fpermissive标志的 GLIB
  3. 用 STL 函数替换 GLIB 函数调用

我会通过选项 3 但我没时间了,然后我问你是否有一些方法可以通过选项 2

我不知道我应该报告哪些代码行,但也许更合适的是我的 makefile 的编译器和链接器标志:

CFLAGS  = -O3 -Wall -I/usr/include/glib-2.0 -I/usr/lib/x86_64-linux-gnu/glib-2.0/include -I/usr/include/pbc -I/usr/local/include/pbc
LDFLAGS = -O3 -Wall -lglib-2.0 -lgmp -lpbc -lcrypto 

标签: c++cmigrationglib

解决方案


推荐阅读