Ele*_*ito 5 c++ macros qt compiler-errors signals-slots
我陷入两难境地.在我正在使用Qt编写的程序中,我使用一个(非Qt)库,在其标题中使用Qt关键字作为名称(库是精确的pf_ring,名称为"slots")所以我得到了编译错误.但是如果我使用no_keywords选项关闭Qt关键字,编译器会抱怨另一个库的标题(这是一个基于Qt的标题),它使用Qt关键字,如"signals"和"slots".
那么我该如何解决这个问题呢?我只想到两个选项,这两个选项都不令人满意:
我可以更改第二个库的头文件,以便它们符合no_keywords模式(将"slots"更改为"Q_SLOTS"等等).
我可以将pf_ring相关代码移动到它自己的子项目中,我可以在其中关闭Qt关键字或根本不使用Qt.
你能否提出另一种希望更优雅,更少麻烦的解决方案?
这取决于库,如果它是一个小的库,你可以制作一个"包装"标题(只有或没有),它不暴露插槽或在wrapper_namespace中公开它(注意你可以使用#undef slots).
| 归档时间: |
|
| 查看次数: |
1271 次 |
| 最近记录: |