运行可执行文件时,CLion找不到共享库

杂色

我正在做一个项目。到目前为止,我一直在使用一个简单的编辑器以及我自己的Makefile来构建它。不过,我想切换到CLion。

根据这个问题,您可以告诉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但是找不到共享库:

/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 指着

echo $LD_LIBRARY_PATH 

/usr/local/lib

/usr/local/lib包含以下库:

ls /usr/local/lib/

libcppunit-1.13.so.0@  libcppunit-1.13.so.0.0.2*  libcppunit.a  libcppunit.la*  libcppunit.so@  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为什么找不到它?如果我从控制台运行二进制文件,则一切正常。

杂色

正如oLen正确指出的那样,通过GUI启动时,CLion似乎没有以我的用户身份启动(在我的情况下为Gnome)。我不知道,因为它开始的,而是设置LD_LIBRARY_PATH=/usr/local/lib/etc/profile和重启(或提供资源),这使得它的工作-简而言之变量未设置任何针对用户正在运行的克利翁。

另一种方法是Run -> Edit Configurations -> (select your application) -> Environment variables在这里,您可以手动设置LD_LIBRARY_PATH为所需的任何值,在本例中为/usr/local/lib

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章