我尝试从一个项目构建两个库(比如A和B)。我add_subdirectory在根 cmake 文件中使用cmake 命令。B取决于A。
当我尝试添加
INSTALL (TARGETS B EXPORT B
PUBLIC_HEADER DESTINATION "include/B"
LIBRARY DESTINATION "lib"
ARCHIVE DESTINATION "lib")
INSTALL (EXPORT B DESTINATION "./")
Run Code Online (Sandbox Code Playgroud)
CMake 警告我有关错误与INSTALL (EXPORT .... 它打印:
CMake 错误:安装(导出“B”...)包括目标“B”,它需要目标“A”不在导出集中。
我需要这样做来配置我的应用程序.我有QLineEdit字段和重新实现的keyPressEvent方法.
QKeyEvent *ke = ...
QString txt;
if(ke->modifiers() & Qt::ControlModifier)
txt += "Ctrl+";
if(ke->modifiers() & Qt::AltModifier)
txt += "Alt+";
if(ke->modifiers() & Qt::ShiftModifier)
txt += "Shift+";
if(ke->key() >= Qt::Key_0 && ke->key() <= Qt::Key_9)
txt += ('0' + ke->key() - Qt::Key_0);
else if(ke->key() >= Qt::Key_A && ke->key() <= Qt::Key_Z)
txt += ('A' + ke->key() - Qt::Key_A);
ui->hotkeyEdit->setText(txt);
Run Code Online (Sandbox Code Playgroud)
但是这个解决方案只能用英文字符创建快捷方式.例如,当我使用俄语键盘布局时,此代码将显示相同的序列,但使用英文字符,放在相同的键盘键上.