【发布时间】:2018-08-15 15:39:17
【问题描述】:
我正在尝试在 linux debian 9.5 中编译一个非常旧的软件,我不断收到此错误:
janpdf/PDF.cpp: In member function ‘void PDF::OpenFile(const char*)’:
janpdf/PDF.cpp:41:74: error: narrowing conversion of ‘199’ from ‘int’ to
‘char’ inside { } [-Wnarrowing]
char signature[] = {'%', '%', 'G' + 128, 'R' + 128, 'A' + 128, '\n', 0};
^
janpdf/PDF.cpp:41:74: error: narrowing conversion of ‘210’ from ‘int’ to
‘char’ inside { } [-Wnarrowing]
janpdf/PDF.cpp:41:74: error: narrowing conversion of ‘193’ from ‘int’ to
‘char’ inside { } [-Wnarrowing]
Makefile:153: recipe for target 'janpdf/PDF.o' failed
make: *** [janpdf/PDF.o] Error 1
我已经尝试过签名/未签名的'char'方法。尽管我对编码几乎一无所知,但这是我找到的唯一答案。欢迎任何其他解决方案。 谢谢
【问题讨论】:
-
A
char可以是有符号的或无符号的——实现定义。如果已签名,则199将不适合。似乎您的实现使用签名字符。
标签: c++