使用c++0x标志编译wxWidgets
compiling wxWidgets with c++0x flags
尝试使用gcc-4.6
从具有c++0x
标志的源代码编译wxWidgets-2.9.1
时。我遇到一个错误
narrowing conversion of '128' from 'int' to 'char' inside { } [-fpermissive]
在文件CCD_ 5中。错误来自以下文件:
- src/gtk/bdiag.xbm
- src/gtk/cdiag.xbm
- src/gtk/fdiag.xbm
- src/gtk/horiz.xbm
- src/gtk/verti.xbm
- src/gtk/cross.xbm
这是一个已知的错误。http://trac.wxwidgets.org/ticket/12575所以我按照要求做了,程序编译得很好。
基本上,有两种修复diff
文件具有
//在dcclient.h文件中
-
hatch[i]=gdk_bitmat_create_from_data(NULL,bdiag_bits,bdiag_width,bdiag_height(;shatchs[i]=gdk_bitmat_create_from_data(NULL,relpret_cast<const char*>(bdiag_bits(,bdiag_width,bdiag_height(;
//在文件bdiag.xbm中,并在所有*.xbm文件中进行类似修复
-
staticcharbdiag_bits[]={
staticunsigned charbdiag_bits〔〕={0x80、0x80、0x40、0x40、0x20、0x20,0x10、0x10、0x08、0x08,0x04,0x02、0x02、0x001、0x01、0x80、0x80,0x40、0x40、0x20、0x20、0x10、0x10,0x08,0x08,0x04,0x02,0x02,0x01};
我理解第二个fix
,但我不能理解第一个。为什么我们需要做reinterpret_cast< const char* >
函数gdk_bitmap_create_from_data
是这样声明的:
typedef char gchar;//in some other header file
GdkBitmap* gdk_bitmap_create_from_data (GdkDrawable *drawable, const gchar *data, gint width, gint height);
而在同一文件dcclient.cpp中的几行之后,对gdk_bitmap_create_from_data
的以下调用没有给出任何错误。
char* data = new char[data_size];
//...
GdkPixmap* pixmap = gdk_bitmap_create_from_data(mask, data, dst_w, dst_h);
现在这里不需要打字。为什么我们需要对static unsigned char*
进行重新解释测试?
unsigned char
、signed char
和char
(也称为"普通字符"(是三种不同的类型。unsigned char*
和char*
之间没有转换。
data
的类型为unsigned char*
,但gdk_bitmap_create_from
需要const char*
。CCD_ 22正在处理签名不匹配。
- 二叉排序树无法编译
- 编译时未启用intel oneApi CUDA支持
- 无法编译wxWidgets Hello World
- 如何使用CLion和MSVC编译器工具链编译wxWidgets Hello World应用程序而没有错误?
- 无法在 WXWIDGETS Windows 10 中编译调试
- 如何将编译的 wxwidgets 与 cmake 一起使用
- wxWidgets 在编译时包含图像
- 在链接阶段期间无法通过Visual Studio远程编译找到WXWIDGETS库
- WxWidgets Hello World 编译失败:"wchar_t must be available"
- 尝试编译我的 wxWidgets 程序时出错"is_enum not declared in this scope"
- 在Windows 10上使用wxWidgets(MinGW模式)编译源代码的问题
- wxWidgets 编译 MinGW - 错误 1 和错误 2
- 使用 GCC-4.8.1 在 MinGW 上编译 wxWidgets-2.8.12 时出错
- 在Visual Studio 11 Beta下编译wxWidgets 2.8.12和2.9.3
- C++wxWidgets应用程序未编译
- WxWidgets编译帮助
- wxWidgets编译错误(致命错误LNK1120: 26个未解决的外部)
- 使用c++0x标志编译wxWidgets
- 编译wxWidgets时出错
- 如何静态编译wxwidgets应用程序