私はプロジェクトで作業しています。私はこれまで単純なエディタと自分のMakefileを使ってビルドしてきました。私はCLionに切り替えたいと思っています。実行可能ファイルを実行しているときにCLIONが共有ライブラリを見つけられない
this questionによれば、CMakeにあなたのMakefileを実行させることができます。だから私のCMake.txt
は次のようになります。
cmake_minimum_required(VERSION 3.6)
project(rekotrans_testbed_simulator)
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -std=c++11")
add_custom_target(rekotrans_testbed_simulator COMMAND make -C ${rekotrans_testbed_simulator_SOURCE_DIR} CLION_EXE_DIR=${PROJECT_BINARY_DIR})
それは罰金構築します。私はまた、作業ディレクトリを設定し、正しい実行可能ファイルを指しています。
私のプロジェクトでは、私はcppunit 1.13
を使ってテストします。しかし、それは共有ライブラリを見つけることができません。
echo $LD_LIBRARY_PATH
/usr/local/lib
と/usr/local/lib
へ
/home/kunterbunt/dev/comnets/git-repository/rekotrans-testbed-simulator/rekotrans-testbed-simulator-tests: error while loading shared libraries: libcppunit-1.13.so.0: cannot open shared object file: No such file or directory
LD_LIBRARY_PATH
ポイントは、ライブラリが含まれています
ls /usr/local/lib/
[email protected] libcppunit-1.13.so.0.0.2* libcppunit.a libcppunit.la* [email protected] pkgconfig/
ldd
はこれを示しています
ldd /home/kunterbunt/dev/comnets/git-repository/rekotrans-testbed-simulator/rekotrans-testbed-simulator-tests
linux-vdso.so.1 (0x00007ffc257e8000)
libboost_thread.so.1.63.0 => /usr/lib/libboost_thread.so.1.63.0 (0x00007f1c73254000)
libboost_system.so.1.63.0 => /usr/lib/libboost_system.so.1.63.0 (0x00007f1c73050000)
libboost_date_time.so.1.63.0 => /usr/lib/libboost_date_time.so.1.63.0 (0x00007f1c72e3f000)
libpthread.so.0 => /usr/lib/libpthread.so.0 (0x00007f1c72c22000)
libboost_program_options.so.1.63.0 => /usr/lib/libboost_program_options.so.1.63.0 (0x00007f1c729a4000)
libdl.so.2 => /usr/lib/libdl.so.2 (0x00007f1c727a0000)
libcppunit-1.13.so.0 => /usr/local/lib/libcppunit-1.13.so.0 (0x00007f1c72563000)
libstdc++.so.6 => /usr/lib/libstdc++.so.6 (0x00007f1c721db000)
libm.so.6 => /usr/lib/libm.so.6 (0x00007f1c71ed7000)
libgcc_s.so.1 => /usr/lib/libgcc_s.so.1 (0x00007f1c71cc0000)
libc.so.6 => /usr/lib/libc.so.6 (0x00007f1c71922000)
librt.so.1 => /usr/lib/librt.so.1 (0x00007f1c7171a000)
/lib64/ld-linux-x86-64.so.2 (0x00007f1c7347c000)
なぜCLionはそれを見つけることができませんか?コンソールからバイナリを実行するとすべて動作します。
'ldd 'の出力を表示できますか? –
ldd出力を表示するように編集しました。 – kunterbunt
私は、LD_LIBRARY_PATHがCLion用にプログラムとして設定されていないと思います。 * CLion内の端末*で 'echo $ LD_LIBRARY_PATH'とは何ですか? – oLen