为什么Qt Creator为已知库提供“没有库的绝对路径”错误?

时间:2014-10-15 04:50:09

标签: shared-libraries environment-variables qt-creator

您好我在基于Qt的项目中使用工业机器视觉相机(Basler)。我在linux Ubuntu 12.04 64 bit和Qt 4.8

下工作

我设置了$ LD_LIBRARY_PATH和所有必需的环境变量来查找相机库,但是当想要运行我的应用程序时,Still Qt creator会出错。它给出了以下错误:

 No absolute path for '/opt/GenICam_v2_3/bin/Linux64_x64/GenApi/Generic/libXMLLoader_gcc40_v2_3.so'

令人惊讶的是,当我从Ubuntu终端运行我的Qt项目时,它运行没有任何问题,但是当我想从Qt创建者运行它时,它会给出上述错误消息。为什么Qt创建者无法找到库路径? 此路径在我的计算机中不是有效路径,而且我没有这样的文件夹" / opt / GenICam_v2_3 "在我的机器上,我不知道为什么Qt坚持创建这样的文件夹。

我在我的应用程序中使用了ldd命令,找到了所有库。所以我确定没有遗漏任何内容。

在我在Qt Creator中运行之前,还有什么我忘记设置的吗?为什么Qt Creator需要这样一个幻像位置?

我尝试将位于其他位置的我的libXMLLoader_gcc40_v2_3.so 放到上面的位置,但它在Qt创建者中提供了另一条错误消息:

Environment variable 'GENICAM_ROOT_V2_3' not found 

我在/etc/bash.bashrc中设置了这个环境变量,所以我确定我已经声明了它,但Qt Creator仍然无法找到它。

bash.bashrc的内容

export PYLON_ROOT=/opt/pylon4
export GENICAM_ROOT_V2_3=${PYLON_ROOT}/genicam
export GENICAM_CACHE_V2_3=$HOME/genicam_xml_cache
export LD_LIBRARY_PATH=${PYLON_ROOT}/lib64:${GENICAM_ROOT_V2_3}/bin/Linux64_x64:${GENICAM_ROOT_V2_3}/bin/Linux64_x64/GenApi/Generic:$LD_LIBRARY_PATH

我也将所有上述信息复制到主目录中的.bashrc。

我应该怎样做才能在Qt创建器中运行我的应用程序因为我需要调试我的应用程序而在Ubuntu终端中我不能轻易做到这一点。

由于

1 个答案:

答案 0 :(得分:1)

我也试图让Basler相机工作,我和你有完全相同的问题;我从终端构建时发生了同样的错误。当我在构建它之后尝试执行其中一个示例时,我收到了错误。

对我来说问题是,我只为#34; GENICAM_ROOT"设置了路径。在.bashrc而不是" GENICAM_ROOT_V2_3" (因为只有" GENICAM_ROOT"被随附的makefile使用)。添加" GENICAM_ROOT_V2_3"解决了这个问题。

我的.bashrc:

export PYLON_ROOT=/opt/pylon3  
export GENICAM_ROOT=/opt/pylon3/genicam  
export GENICAM_ROOT_V2_3=/opt/pylon3/genicam  
export GENICAM_CACHE=~/tmp  
export LD_LIBRARY_PATH=${LD_LIBRARY_PATH}:${PYLON_ROOT}/lib64  
export LD_LIBRARY_PATH=${LD_LIBRARY_PATH}:${GENICAM_ROOT}/bin/Linux64_x64  
export LD_LIBRARY_PATH=${LD_LIBRARY_PATH}:${GENICAM_ROOT}/bin/Linux64_x64/GenApi/Generic  

希望这可以帮助某人。