この記事は、「新人クリエーションセレモニー」イベントに参加し、一緒にゴールドクリエーションの道を歩み始めました。
1つ目は、必要なCmakeLists
準備です。
主なものはシステム環境にinstall
インストールすることです、あなたはcmakeの使用法を参照することができます(2)インストールの使用法このパッケージにインストールする必要がある3つのポイントがあります:1。実行可能ファイル2.ファイル/設定を起動しますファイル3.ダイナミックライブラリ
install(TARGETS ${PROJECT_NAME}_node ${PROJECT_NAME}
ARCHIVE DESTINATION ${CATKIN_PACKAGE_LIB_DESTINATION}
LIBRARY DESTINATION ${CATKIN_PACKAGE_LIB_DESTINATION}
RUNTIME DESTINATION ${CATKIN_PACKAGE_BIN_DESTINATION}
)
install(DIRECTORY launch
DESTINATION ${CATKIN_PACKAGE_SHARE_DESTINATION}
)
install(DIRECTORY share/location_fusion/lib/
DESTINATION ${CATKIN_PACKAGE_LIB_DESTINATION}
)
复制代码
その中には、ダイナミックライブラリの一部にエラーが発生しやすい部分があります。上記の記述は、次の記述とは異なります。上記の記述は正しいです。lib
インストール時に含まれることはなく、lib
内部が含まれます。それ以外の場合。/lib/lib
ディレクトリにインストールされます!
install(DIRECTORY share/location_fusion/lib
DESTINATION ${CATKIN_PACKAGE_LIB_DESTINATION}
)
复制代码
途中でサーバーのコンパイルに問題がありました。挿入してください。
terminate called after throwing an instance of 'std::runtime_error'
复制代码
なぜ表示されるのかわかりません、解決策:
export LC_ALL=”en_US.utf8”
复制代码
インストール後、ライブラリと他のパッケージの名前が競合していることが判明しました。2つのパッケージが同時に1か所に書き込まれました。元々、インストールアドレスを変更したかったのですが、うまくいきませんでした。ライブラリ名を変更したところ、別のピットが登場!
.so
の名前を直接変更して実行したいのですが、結果はまだ前のパッケージを探しています。これは非常に奇妙です。このライブラリを再コンパイルし、生成時に名前を変更するだけで、結果を実行できます。
長い間無駄になりました。
発見したばかりの知識を少し記録します。通常の実行可能ファイルをデバッグする場合は、gdb ./
直接。ではnode
、どのようにgdb
デバッグか?
検索は本当にそこにあり、学んだ!
<node launch-prefix="gdb -ex run --args" pkg="livox_mapping" type="scanRegistration_m1" name="scanRegistration_m1" output="screen">
复制代码
シンプルで便利な、それを記録します。
また、静的ライブラリと動的ライブラリに関する記事を見つけました。これは非常に包括的で詳細です。Linuxシステムプログラムの実行時にダイナミックライブラリパスをロードする順序