HWLOC连接错误
Linking error with HWLOC
我试图链接hwloc (http://www.open-mpi.org/projects/hwloc/)到我的非常基本的应用程序。详情如下
main.cxx:
#include <hwloc.h>
#include <stdio.h>
int main(int argc, char** argv) {
hwloc_topology_t topology;
int ncores;
hwloc_topology_init(&topology);
hwloc_topology_load(topology);
ncores = hwloc_get_nbobjs_by_type(topology, HWLOC_OBJ_CORE);
printf("Number of cores: %dn", ncores);
hwloc_topology_destroy(topology);
return 0;
}
Makefile:
.SUFFIXES: .cxx .o
CXX = g++
TARGET = tests
SRCS = main.cxx
OBJS = $(SRCS:.cxx=.o)
HWLOC_ROOT = $(CURDIR)/hwloc
HWLOC_INCS = -I$(HWLOC_ROOT)/include
HWLOC_LIBS = -L$(HWLOC_ROOT)/lib -lhwloc
FLAGS = -std=c++0x $(HWLOC_INCS)
LDFLAGS = $(HWLOC_LIBS)
%.o : %.cxx
$(CXX) -c $(FLAGS) $<
$(TARGET) : $(OBJS)
$(CXX) -o $@ $^ $(LDFLAGS) -lstdc++
clean :
rm -rf *.o $(TARGET)
与我的两个文件(main。cxx和Makefile)是包含hwloc的目录。它是正确安装的,因为我以前用过它。
我可以编译一切。当我运行./tests
时,我得到以下错误:
./tests: error while loading shared libraries: libhwloc.so.5: cannot open shared object file: No such file or directory
里面。/hwloc:
bin/ include/ lib/ share/
里面。/hwloc/lib:
libhwloc.la libhwloc.so libhwloc.so.5 libhwloc.so.5.3.1 pkgconfig/
很明显libhwloc.so.5
存在,所以我不确定问题是什么。谢谢你对我问题的帮助。
澄清一下,重点是不必将目录添加到我的路径中。我不想为了让链接器知道在哪里找到libhwloc.so.5而执行任何命令行命令。目标是能够将我的应用程序的根目录移动到我的计算机或另一台计算机上的任何地方,并且它仍然知道在哪里找到libhwloco .so。5、自打包应用程序
这就是LD_LIBRARY_PATH的目的。如果您在非标准位置(即不是/usr/lib、/usr/local/lib等)有共享库,动态加载器需要知道在哪里找到它们。有两种主要的方法来解决这个问题。对于不经常使用的一次性库或少量程序,将users LD_LIBRARY_PATH设置为包含库所在的目录就足够了。为了更广泛的使用,您可以通过将该目录添加到加载器知道的目录列表中,从而使该目录成为"标准"目录之一—在Linux上,通常是通过编辑/etc/ld.so.conf.d
或/etc/ld.so.conf
本身中的文件,然后运行ldconfig
来完成的。这会将该目录添加到所有用户和程序的系统范围搜索路径中,因此要小心潜在的冲突。
您可以在编译时使用-Wl,-rpath,$(HWLOC_ROOT)/lib强制执行库的运行时路径(这意味着gcc将传递"-rpath $(HWLOC_ROOT)/lib"给链接器),但这并不总是一个好主意。
- 连接 dockerized 模型和 dockerized 数据库时出现"无法 SQLConnect"错误
- 使用 bfs 解决连接组件问题时得到错误的答案
- 如何修复valgrind启动时的致命错误(与libc6-dbg和libc6-dbg:i386连接)
- C++应用程序 MySQL odbc 数据库连接错误:在引发"otl_tmpl_exception<>"实例后终止调用
- 套接字连接"Operation not permitted"错误,甚至使用升压/平发器根.cpp
- CMake 错误"源似乎不包含 CMakeLists.txt",路径/库连接问题
- 当客户端在 write() 期间终止连接时,由对等套接字错误重置连接
- 从 Linux OMI (omicli) 到 Windows WMI 的连接失败,并出现与 DMTF 相关的错误
- C++ 中连接 4 游戏的输入逻辑错误
- Eclipse:错误:初始化模式失败(无法连接到目标)
- C++所有 AT 命令的短信返回错误 |PC<->通过蓝牙和winsocket的移动连接
- 如何修复数据库连接的C 程序运行时间错误(0xc0000005)
- Mongocxx 连接错误
- 连接到套接字失败 - 错误编号 88 (CPP)
- 尝试重新连接到服务器时获取错误提升 asio 连接超时
- 字符和 int 连接何时会导致 seg 错误?
- 在 ZeroMQ 中绑定订阅者套接字并连接发布者套接字会在代码运行时给出错误.为什么
- JNI - WMI 连接错误
- boost :: Asio连接错误的界面
- 如何在两个设备之间与TCP通信时修复错误"连接被拒绝"