标签: lib

在 Linux 系统上使用 C++ 链接到共享库和静态库

我正在搞一个测试项目,让我们称之为它mytest,它有一个 .cpp 和一个 .h 文件,内容并不重要 - 想象它包含一些简单的hello_world()类型函数......

因此,我正在制作一个通用的 makefile 将其编译到各种库输出中,其中ls -l我的输出文件夹给出:

libmytest.a
libmytest.so -> libmytest.so.1.0
libmytest.so.1 -> libmytest.so.1.0
libmytest.so.1.0
Run Code Online (Sandbox Code Playgroud)

到目前为止一切顺利,我的共享/静态库已创建。

现在我的 make 文件中有一个make install目标,它基本上将标头复制到/usr/local/include,并将所有这些库文件复制到/usr/local/lib

然后我制作了另一个测试 cpp 文件usertest.cpp(抱歉,名称不是很有想象力/描述性),它链接到库文件。

我通过多种方式编译:

  1. g++ -Wall -Werror -I. -lmytest
  2. g++ -Wall -Werror -I. -lmytest -static

然后我删除了 libmytest.so* 文件,所以我只有 libmytest.a 库文件然后/usr/local/lib我做了同样的测试:

  1. g++ -Wall -Werror -I. -lmytest
  2. g++ -Wall -Werror -I. -lmytest -static

最后我删除了 libmytest.a 文件并复制回 .so 文件,因此我只有 libmytest.so* 库文件然后/usr/local/lib …

c++ shared-libraries static-libraries lib

3
推荐指数
1
解决办法
4483
查看次数

在Ubuntu 18.04上安装Oracle 18cxe的问题

我正在尝试配置Oracle XE,但面临以下问题:

root @ venky-Lenovo-G510:〜#/etc/init.d/oracle-xe-18c配置

/ bin / df:无法识别的选项'--direct'尝试使用'/ bin / df --help'了解更多信息。指定用于数据库帐户的密码。Oracle建议输入的密码长度至少为8个字符,至少包含1个大写字母,1个小写字母

大小写字符和1位数字[0-9]。请注意,相同的密码将是

用于SYS,SYSTEM和PDBADMIN帐户:确认密码:配置Oracle Listener。侦听器配置成功。配置Oracle数据库XE。**** [FATAL] [DBT-50000]无法检查可用内存。****

数据库配置失败。检查“ / opt / oracle / cfgtoollogs / dbca”下的日志。

root @ venky-Lenovo-G510:〜#

这和什么有关/bin/df: unrecognized option '--direct'吗?或者是其他东西 ?

谢谢

oracle oracle-apex linux-disk-free lib ubuntu-18.04

3
推荐指数
2
解决办法
2825
查看次数

数学库与 C# 中自己的库

所以我们尝试用 C# 开发一个数学类,我们做到了。将结果与 System.Math 的原始数学类进行比较表明我们总是迟到一点或很多(特别是触发方法)。

但是当我们使用像 Absolut value 这样不包含大量代码的基本方法时,奇迹就出现了

if(value < 0) return -value;
else return value;
Run Code Online (Sandbox Code Playgroud)

我们仍然远远落后。

我不能让这个 abs 方法更小,我猜使用三元运算符也无济于事。

是因为 System.Math 是用 C 编写的吗?如果我们用母语写它会不会更快,尽管我读过它似乎不会改变太多。最后,一个 dll 能不能比一个类工作得更快,如果是,为什么,如果不是......为什么呢?

已经谢谢了。

.net c# math performance lib

2
推荐指数
1
解决办法
200
查看次数

两个可以互相扩展的库

所以我正在为我和我的团队开发一个Modular C++库.这是我的情况:

我有一个A包含复杂存储控件的库class a.我还有一个库B,它类似于包含特殊响应的复杂协议的接口.现在,我希望在一个可以使用的类a中有一个函数B.这对于X使用A和的程序很有帮助B.但也有程序Y,它只会使用A而不是复杂的库B.

如何在C++中获得此行为?我是否需要宏,符号或是否有其他方法可以轻松实现这一点,以便我不需要在程序中包含额外的文件?哪种类型的库更好?

c++ class lib

2
推荐指数
1
解决办法
37
查看次数

libiomp5.so 的多个 shlib 提供程序

我为用于安装英特尔 MKL 的定制配方进行了 bitbake。

下载 MKL 的链接: https://software.intel.com/content/www/us/en/develop/tools/mpi-library/choose-download.html

做了之后

bitbake foo
Run Code Online (Sandbox Code Playgroud)

表明:

ERROR: lmkl-1.0-r0 do_package: lmkl: Multiple shlib providers for libiomp5.so: lmkl, lmkl (used by files: /home/rsa/foo/build/tmp/work/corei7-64-poky-linux/lmkl/1.0-r0/packages-split/lmkl/opt/intel/compilers_and_libraries_2020.0.166/linux/mkl/benchmarks/hpcg/bin/xhpcg_skx)
ERROR: lmkl-1.0-r0 do_package: lmkl: Multiple shlib providers for libtbbmalloc.so.2: lmkl, lmkl (used by files: /home/rsa/foo/build/tmp/work/corei7-64-poky-linux/lmkl/1.0-r0/packages-split/lmkl/opt/intel/compilers_and_libraries_2020.0.166/linux/tbb/lib/intel64_lin/gcc4.8/libtbbmalloc_proxy.so.2)
ERROR: lmkl-1.0-r0 do_package: lmkl: Multiple shlib providers for libiomp5.so: lmkl, lmkl (used by files: /home/rsa/foo/build/tmp/work/corei7-64-poky-linux/lmkl/1.0-r0/packages-split/lmkl/opt/intel/compilers_and_libraries_2020.0.166/linux/mkl/benchmarks/hpcg/bin/xhpcg_avx)
ERROR: lmkl-1.0-r0 do_package: lmkl: Multiple shlib providers for libiomp5.so: lmkl, lmkl (used by files: /home/rsa/foo/build/tmp/work/corei7-64-poky-linux/lmkl/1.0-r0/packages-split/lmkl/opt/intel/compilers_and_libraries_2020.0.166/linux/mkl/benchmarks/hpcg/bin/xhpcg_knl)
ERROR: lmkl-1.0-r0 do_package: lmkl: Multiple shlib providers for …
Run Code Online (Sandbox Code Playgroud)

openembedded yocto lib

2
推荐指数
1
解决办法
2628
查看次数

TensorFlow GPU 问题“libnvinfer.so.7”和“libnvinfer.so.7”无法加载

我在WSL 2Ubuntu\xc2\xa022.04 (Jammy Jellyfish) 下安装了 TensorFlow,按照使用 pip 安装 TensorFlow中的说明进行操作。

\n

*我还安装了适用于 Windows 的 Nvidia 驱动程序,并且在我的另一个 WSL\xc2\xa02 中,我使用 GPU 支持的模拟程序。

\n

一切看起来都很好。我在安装过程中没有收到任何错误消息,但是当我在Python\xc2\xa03中导入TensorFlow时,出现以下错误:

\n
2023-02-12 14:49:58.544771: W tensorflow/compiler/xla/stream_executor/platform/default/dso_loader.cc:64] Could not load dynamic library \'libnvinfer.so.7\'; dlerror: libnvrtc.so.11.0: cannot open shared object file: No such file or directory\n2023-02-12 14:49:58.544845: W tensorflow/compiler/xla/stream_executor/platform/default/dso_loader.cc:64] Could not load dynamic library \'libnvinfer_plugin.so.7\'; dlerror: libnvinfer_plugin.so.7: cannot open shared object file: No such file or directory\n2023-02-12 14:49:58.544874: W tensorflow/compiler/tf2tensorrt/utils/py_utils.cc:38] TF-TRT Warning: Cannot dlopen some TensorRT libraries. …
Run Code Online (Sandbox Code Playgroud)

python gpu tensorflow lib

2
推荐指数
1
解决办法
5482
查看次数

要使用 `async fn`,请切换到 Rust 2018 或更高版本

我正在尝试用 rust 编译 lib,但出现以下错误:

to use `async fn`, switch to Rust 2018 or later
Run Code Online (Sandbox Code Playgroud)

这是我的Cargo.toml:

[package]
name = "name"
version = "0.1.0"
edition = "2018"
Run Code Online (Sandbox Code Playgroud)

并使用以下命令行进行编译(此处的文档):

rustc --crate-type=lib src/apis/my_file.rs
Run Code Online (Sandbox Code Playgroud)

有人有想法吗?

compilation rust lib

2
推荐指数
1
解决办法
1089
查看次数

在没有任何其他库的情况下执行 GET 请求的最佳方式

看起来 Apache 客户端已被弃用,是否有另一种方法可以在不安装花哨的库的情况下进行 http 请求?

我应该使用 Apache 客户端吗?如何导入,我的Android Studio 不想导入HttpClient、HttpGet、...

谢谢

apache android http lib

1
推荐指数
1
解决办法
1338
查看次数

使用 python faker 库但有导入错误

我的代码中有这一行,from faker import Factory但出现错误ImportError: no module named faker。所以我查看了 Stack Overflow 和 pip 安装了 fake-factory。它说安装成功,但是当我再次运行代码时,它给了我另一个导入错误:

ImportError: The ``fake-factory`` package is now called ``Faker``.

Please update your requirements.
Run Code Online (Sandbox Code Playgroud)

我在这里缺少什么?

python importerror lib

1
推荐指数
1
解决办法
6379
查看次数

仅头文件库的配置 (C++)

我正在用 C++ 编写一个仅包含头文件的库。使事情尽可能简单,用户只需#include mylib.h

在某些情况下,(高级)用户可能想要配置库的行为(例如错误处理、编译时或运行时检查、调试输出以及可能的其他内容)

请不要告诉我执行此操作的最佳方法(甚至标准方法),因为否则问题将被搁置!

现在,我有一个文件“config.h”作为我的库的一部分,其中包含相关内容,#define MYLIB_XYZs但我意识到这完全是无稽之谈,因为用户需要修改库本身才能进行配置。

c++ config configuration-files header-files lib

1
推荐指数
1
解决办法
819
查看次数

从.dll导入函数时,为什么需要.lib文件?

您能帮我了解一下,为什么从dll导入函数和数据时我们需要.lib文件吗?

我听说,它包含来自相应dll的导出函数和数据元素的列表,但是当我使用CFF Explorer探索我的dll时,我发现dll已经具有导出函数的地址,因此从理论上讲我可以链接我的.dll的程序,没有任何其他文件。

您能否详细解释一下.lib文件中存储的数据类型?
而且,是的,我知道,Visual Studio迫使我们将.lib文件添加到其他依赖项部分,但是为什么它真正需要它们呢?

c++ dll visual-studio lib

1
推荐指数
1
解决办法
100
查看次数

.lib不是有效的Win32应用程序 - Visual Studio 2015

我试图用C++创建一个简单的.lib文件,尝试使用C++/CLI包装技术在我的C#中使用代码.问题是,我的C++代码本身没有成功编译.它一直在推动"不是一个有效的Win32应用程序"错误.我尝试查找同样的问题,许多答案表明Windows XP存在.NET框架问题.但我在'Visual Studio 2015(v140)'平台工具集上运行它.我的桌面是运行Windows 10 pro的64位操作系统(x64处理器).

这是我的项目属性的片段:

下面是我的头文件代码:

 #pragma once

 namespace AddTwoNumbersLib
 {
    class AddClass
    {
        public:
        static double Add(double x, double y);
    };
}
Run Code Online (Sandbox Code Playgroud)

这是我的.cpp代码:

     #include "AddClass.h"

     namespace AddTwoNumbersLib
 {
        double AddClass::Add(double x, double y)
         {
              return x + y;
        }
}
Run Code Online (Sandbox Code Playgroud)

因为我是业余爱好者,所以我正在努力解决这个问题.非常感谢您的帮助!

c++ visual-c++ visual-studio-2015 lib

0
推荐指数
1
解决办法
1万
查看次数

将此C代码移植到Delphi/Lazarus

我在C中有这个代码,我想移植到Delphi,但我不能让它工作.

.CPP代码

#include <Windows.h>

#include <io.h>
#include <stdio.h>

#include "GLibExp.h"
#pragma comment(lib, "GLib.lib")

void MyCFunc(LPCTSTR GStr)
{
    GFile GVar = NULL;
    GVar = GrfLoad(GStr, 1);
    if ( !GVar )
    {
        printf("Error during loading!\n");
    } else
        printf("All fine!\n");

    GrfFree(GVar);
    system("pause");
}

void main()
{
    CHAR StrG[MAX_PATH] = "Test.grf";
    MyCFunc(StrG);
    return;
}
Run Code Online (Sandbox Code Playgroud)

GLibExp.h

#ifndef GLibExpH
#define GLibExpH

#if defined(GRF_DLL)
#define GEXPORT __declspec(dllexport)
#else
#define GEXPORT extern
#endif

class CGFILE;
typedef CGFILE* GFile;
//typedef void* GFile; //Also works like this

#ifdef __cplusplus
extern …
Run Code Online (Sandbox Code Playgroud)

delphi dll external lazarus lib

-4
推荐指数
1
解决办法
273
查看次数