无法使用 .so 文件安装共享库
Impossible to install shared library with .so file
我无法在 Ubuntu 上安装 this library,或者至少无法为它编译一个 .cpp
linking 库。我已经完成了所有 Google 和 Whosebug 的回答。
好吧,首先我 运行 cmake
然后我 运行 make
(当然还有 make install
)。不过,如果我 运行 g++ xxx.cpp -lcrb -o test
我会得到这个错误:fatal error: CRNB.h: No such file or directory
。该库还不喜欢安装,所以我将 libcrn.so
文件复制到 /usr/lib
并 运行 sudo ldconfig
加载它。现在...
sudo ldconfig -n -v /usr/lib/
表示已正确安装(不是在复制 .so
文件之前)。
g++ -lcrn
表示已正确安装,因为 returns undefined reference to 'main'
而不是 cannot find -lcrn
(与复制 .so
文件之前一样)
ldd /bin/ls
没有列出库,这意味着它没有安装
无论如何,尝试编译仍然会抛出同样的错误。我也试过了...
- ... 创建一个
.conf
文件并将其添加到文件夹 /etc/ld.so.conf.d/
- ... 将
.so
文件的符号 link 创建到 /usr/lib
- ... 在
/usr/local/lib
和 /lib
文件夹中重复所有这些解决方案
- ...将所有这些文件夹添加到
/etc/ld.so.conf
路径
- ... 将
LD_LIBRARY_PATH
导出到 .so
文件的路径
还有很多类似的。如您所见,所有这些都是一样的,所以很明显我正在丢失一些重要的东西。有人知道它可能是什么吗?
非常感谢!
您需要使用“-I”标记指定包含目录,或将其导入您的系统。
尝试:
g++ src_name.cpp -L./your/library -lcrn -I./your/headers -o out_name -std=c++11
或者:
您可以从 libcrn 包含文件 ("*.h") 复制到"/usr/local/include/",如果库不存在则复制到"/usr/local/lib/",然后:
g++ src_name.cpp -lcrn -o out_name -std=c++11
我无法在 Ubuntu 上安装 this library,或者至少无法为它编译一个 .cpp
linking 库。我已经完成了所有 Google 和 Whosebug 的回答。
好吧,首先我 运行 cmake
然后我 运行 make
(当然还有 make install
)。不过,如果我 运行 g++ xxx.cpp -lcrb -o test
我会得到这个错误:fatal error: CRNB.h: No such file or directory
。该库还不喜欢安装,所以我将 libcrn.so
文件复制到 /usr/lib
并 运行 sudo ldconfig
加载它。现在...
sudo ldconfig -n -v /usr/lib/
表示已正确安装(不是在复制.so
文件之前)。g++ -lcrn
表示已正确安装,因为 returnsundefined reference to 'main'
而不是cannot find -lcrn
(与复制.so
文件之前一样)ldd /bin/ls
没有列出库,这意味着它没有安装
无论如何,尝试编译仍然会抛出同样的错误。我也试过了...
- ... 创建一个
.conf
文件并将其添加到文件夹/etc/ld.so.conf.d/
- ... 将
.so
文件的符号 link 创建到/usr/lib
- ... 在
/usr/local/lib
和/lib
文件夹中重复所有这些解决方案 - ...将所有这些文件夹添加到
/etc/ld.so.conf
路径 - ... 将
LD_LIBRARY_PATH
导出到.so
文件的路径
还有很多类似的。如您所见,所有这些都是一样的,所以很明显我正在丢失一些重要的东西。有人知道它可能是什么吗?
非常感谢!
您需要使用“-I”标记指定包含目录,或将其导入您的系统。
尝试:
g++ src_name.cpp -L./your/library -lcrn -I./your/headers -o out_name -std=c++11
或者:
您可以从 libcrn 包含文件 ("*.h") 复制到"/usr/local/include/",如果库不存在则复制到"/usr/local/lib/",然后:
g++ src_name.cpp -lcrn -o out_name -std=c++11