gpt4 book ai didi

c++ - Nsight Eclipse 找不到共享库

转载 作者:行者123 更新时间:2023-11-30 02:43:15 25 4
gpt4 key购买 nike

我正在使用 NSight Eclipse 创建一个类库,其中包含 CUDA 加速类,旨在由第三方应用程序扩展和使用。让我们称我的项目为“foo”。我想通过在一个单独的项目中编写一个第三方应用程序来测试 foo,包括我的测试应用程序,然后运行它。但是,当我这样做时,测试应用程序无法找到 foo 共享库文件。

我已将测试项目的包含路径设置为我的 foo 的 src 目录,测试应用程序正在请求正确的库名称,并且 foo/Debug 的路径是正确的。我的流程基于 this posting 中的说明.

我已验证 foo 正在生成共享库工件,并且检查了 -fPIcflags。

我可以编译这两个项目,所以看起来设置确实是正确的,但是当我实际尝试运行测试项目时,我收到消息“加载共享库时出错:foo.so:无法打开共享对象文件: 没有这样的文件或目录”。但是当我查看 foo/Debug 目录时,我可以在那里看到文件 libfoo.so。

我也尝试过将 foo 更改为静态库,但这会产生相同的错误消息。

这是怎么回事,我该如何解决?

感谢您的帮助。

最佳答案

Linux 通常不会加载用户创建的共享库,除非该库位于 LD_LIBRARY_PATH 环境变量中包含的路径上。

将有问题的库路径添加到您的 LD_LIBRARY_PATH 环境变量以解决此问题。

使用 bash/sh 你可以:

export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/path/to/my/library.so

此时,作为测试,从命令行运行您的程序。它现在应该找到图书馆。

然后您可以启动 Nsight EE,它应该也能找到它。

这没有多大意义:

I have tried changing foo to be a static library too, but that yields the same error message.

静态库永远不会被动态加载,即使它位于“正确”路径上也是如此。

关于c++ - Nsight Eclipse 找不到共享库,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26308867/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com