問題タブ [qmetaobject]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
c++ - CMake プロジェクトで Q_OBJECT マクロを使用できない
CMake プロジェクトで Qt のメタ オブジェクト コンパイラに問題があります。私が構築している共有ライブラリには、次のコードが含まれており、pimpl イディオムを採用しています。CMake を呼び出してコンパイルすると、
AUTOGEN: エラー: ~/tools/Project/gui/src/mainWindow.cpp: ファイルには Q_OBJECT マクロが含まれていますが、「mainWindow.moc」は含まれていません! gui/CMakeFiles/gui_automoc.dir/build.make:57: ターゲット 'gui/CMakeFiles/gui_automoc' のレシピが作成に失敗しました[2]: *** [gui/CMakeFiles/gui_automoc] エラー 1 CMakeFiles/Makefile2:234: レシピターゲット 'gui/CMakeFiles/gui_automoc.dir/all' が失敗しました
私が間違っていることや、srcファイルをプロジェクトにQ_OBJECTマクロに組み込む正しい方法がわかりません。助けてください =/
GUI/インクルード/GUI/mainWindow.hpp
gui/src/mainWindow.cpp
次のようにライブラリをコンパイルします。
今、このライブラリを実行可能ファイルにリンクしたい
アプリ/main.cpp
次のCMakelists.txtを使用して、gui libに対してリンクします
プロジェクトのトップレベルの CMakeLists は次のようになります
c++ - 出力引数を持つ Qt invokeMethod 呼び出し関数
QMetaObject::invokeMethod の使用法を理解しようとしています。私は1つの引数(非const QString)を持つ関数を持っています。それを出力にしたいのですが、関数には戻り値がなく、invokeMethodの呼び出しは常に失敗しますが、戻り値があり引数がない別の関数を呼び出すことはできません成功しました。コードは次のとおりです。
myclass.h
myclass.cpp
main.cpp
結果は次のとおりです。
いろいろ試したのですが、うまくいきません 原因わかる方いますか?前もって感謝します!