我正在尝试使用bindgen生成到Qt6的绑定。我关注了this answer,并尝试了以下内容:
let bindings = bindgen::Builder::default()
.header("exclient.hpp")
.clang_arg("
-I/usr/include/qt6
-I/usr/include/qt6/QtCore
-I/usr/include/qt6/QtGui
-I/usr/include/qt6/QtQml
-I/usr/include/qt6/QtQuick
")
.parse_callbacks(Box::new(bindgen::CargoCallbacks))
.generate()
.expect("Unable to generate bindings");但是当我尝试编译它时,我得到了以下错误:-
--- stderr
/home/hilomen/Development/qtrusttest/target/debug/build/exclient3-d982a3579dd42390/out
warning:
-I/usr/include/qt6
-I/usr/include/qt6/QtCore
-I/usr/include/qt6/QtGui
-I/usr/include/qt6/QtQml
-I/usr/include/qt6/QtQuick
: 'linker' input unused [-Wunused-command-line-argument]
exclient.hpp:3:10: fatal error: 'QObject' file not found
warning:
-I/usr/include/qt6
-I/usr/include/qt6/QtCore
-I/usr/include/qt6/QtGui
-I/usr/include/qt6/QtQml
-I/usr/include/qt6/QtQuick
: 'linker' input unused [-Wunused-command-line-argument], err: false
exclient.hpp:3:10: fatal error: 'QObject' file not found, err: true我可以确认/usr/include/qt6/QtCore/QObject文件确实存在
发布于 2021-03-09 21:25:19
我太傻了,我应该用clang_args而不是clang_arg
let bindings = bindgen::Builder::default()
.header("exclient.hpp")
.clang_args(&[
"-I/usr/include/qt6",
"-I/usr/include/qt6/QtCore",
"-I/usr/include/qt6/QtGui",
])
.parse_callbacks(Box::new(bindgen::CargoCallbacks))
.generate()
.expect("Unable to generate bindings");https://stackoverflow.com/questions/66546971
复制相似问题