使用cmake编程出现的narrowing conversion问题,想请教一下
最近刚开始用cmake来写东西,
在尝试把一段Qmake程序转变为Cmake程序时出现了/home/turtlebot/comfunccmake/PortSend.cpp:10: error: narrowing conversion of ‘135’ from ‘int’ to ‘char’ inside { } [-Wnarrowing]
char clstr[] = {0x87};
这种问题,我记得本来用Qt编写时碰到这种问题一般是使用添加c++11编译器来解决的
结果这会发现在cmake里添加add_compile_options(-std=c++11)和add_definitions(-Dlinux=1)好像并没起作用……
原本的Qt程序的pro文件内容如下
QT += core
QT -= gui
contains(QT_VERSION, ^5\\..*\\..*): QT += widgets
TARGET = ComFunc
TEMPLATE = app
include(src/qextserialport.pri)
SOURCES += \
main.cpp \
PortSend.cpp
HEADERS += \
PortSend.h
原文件中包含的pri文件里包含一段
linux*{
!qesp_linux_udev:DEFINES += QESP_NO_UDEV
qesp_linux_udev: LIBS += -ludev
}
macx:LIBS += -framework IOKit -framework CoreFoundation
win32:LIBS += -lsetupapi -ladvapi32 -luser32
# moc doesn't detect Q_OS_LINUX correctly, so add this to make it work
linux*:DEFINES += __linux__
我在想是由于什么原因才导致了这个问题,如果问题不全的话我会继续补充……麻烦了