c++ - 如何编译 C++ 程序并使用 GLIB 库?
问题描述
我得到了一个C库。我还获得了一些基于上述库构建的C可执行文件。库源代码和可执行文件源代码都使用 GLIB 库。一切正常,但我被要求(除其他外)将库和可执行代码迁移到 C++ 作为开发环境,我将不得不使用仅通过 g++ 而不是 gcc 编译(不幸的是,这不是一个选项)。但是,迁移此代码根本不是一项艰巨的任务,但我无法摆脱 GLIB 函数调用中引发的错误。它们几乎都是 C++ 不支持的所有隐式转换,但关键是我不能(而且我不想)编辑 GLIB 库。我使用“解决”了这些问题-fpermissive
编译器标志,但我绝对想避免它。在我看来,我有三个选择:
- 继续使用
-fpermissive
(坏) - 找到一种方法来继续使用没有
-fpermissive
标志的 GLIB - 用 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
解决方案
推荐阅读
- python - 如何根据另一个数据框的特定列的值更新数据框的多列中的值
- javascript - 如何同时使用 res.sendFile(); 和 res.send(); 在 Node.js 中?
- java - JVM - 为什么 YoungGen 在 gc 之间使用堆减少?
- kotlin - 如何序列化 kotlin 暴露的 sql dao
- javascript - 错误:将文件上传到服务器时流意外结束(反应本机 fs)
- ios - 想要将视图控制器添加到标签栏项目
- angular - 选择 mat-option 后角度更新 formControl 值
- php - 在 PHP 中将 MySQL 结果返回到 GraphQL
- php - 如何使用 PHP 从 Google Team Drive 中获取所有照片?
- three.js - 来自 youtube 的 3D 场景中的threejs 视频