小编A R*_*A R的帖子

将共享库与Linux中的另一个共享库链接

我正在尝试构建一个共享库.让我们说libabc.so.它使用另一个.so文件,比如lib123.so(/ usr/local/lib中的lib).现在我在我的应用程序中使用我的共享库libabc.so.说我的应用程序.我想知道我应该如何链接这些二进制文件?我不想直接将我的应用程序与lib123.so链接.my-app应该只与libabc.so链接.我怎样才能做到这一点?

提前致谢.我正在使用g ++编译器

c c++ linux linker shared-libraries

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

如何使用yocto配方为"配置"提供选项?

我想在yocto中写一个配方来构建我的自定义组件.在那我想根据机器启用一些标志.

例如:

如果机器是x86

我的configure命令应该是这样的:

./configure --enable-x86
Run Code Online (Sandbox Code Playgroud)

如果是x64

./configure --enable-x64
Run Code Online (Sandbox Code Playgroud)

我正在使用汽车工具进行建设.请帮我写配方以及"configure.ac"来实现这一目标.

ps:我对yocto很新.

linux autotools recipe cross-compiling yocto

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

将标准输出和标准错误重定向到 C++ 中的单个文件

如何将 stdout 和 stderr 重定向到 C++ 中的单个文件?

我试过的是:

if((LogStream = freopen(strFilePath.c_str(), "w", stdout)) == NULL)
{
    cout << "Failed to redirect console logs\n";
}
if((LogStream = freopen(strFilePath.c_str(), "a", stderr)) == NULL)
{
    cout << "Failed to redirect console logs\n";
}
Run Code Online (Sandbox Code Playgroud)

但它并没有像我预期的那样工作。

提前致谢

c++ file-io stdout

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

无法使用python将数据写入文件

outfile = open(inputfile, 'w')
outfile.write(argument)
outfile.flush()
os.fsync(outfile)
outfile.close
Run Code Online (Sandbox Code Playgroud)

这是代码段.我想在python中写一些文件.但是当我们打开文件时,没有任何内容写入其中.我做错了吗?

python linux file

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

尝试在我的映像中打包符号链接时,yocto构建中出现质量检查问题

我试图在继承自动工具后使用yocto构建我的库。我需要在最终映像中打包“ .so”文件,因为我的应用程序在运行时会动态链接该库。但是我在最终图像中找不到我的.so文件,相反,我可以看到“ .so.0”和“ .so.0.0.0”。因此,我尝试在食谱中添加以下规则。

FILES_SOLIBSDEV = ""
FILES_${PN} += "${libdir}/"
Run Code Online (Sandbox Code Playgroud)

加上这个给我一个错误。

ERROR: QA Issue: non -dev/-dbg/-nativesdk package contains symlink .so:
Run Code Online (Sandbox Code Playgroud)

我可以理解“ .so”文件是符号链接,我无法将它们打包在映像中,因为它们是供开发人员软件包使用的。但是我不知何故需要目标图像中的“ .so”文件。有没有出路?

注意:可以将应用程序源代码修改为采用“ .so.0.0.0”,但这是最不推荐的选择。

linux build autotools embedded-linux yocto

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

在c ++中使用delete时出现分段错误

我试图删除一个指针(对于char数组)时遇到seg错误.请帮我.我在这里做错了什么.请在下面找到代码段和输出.

代码:

# include <iostream>
using namespace std;
int main()
{
        int *p = new int;
        const char* c = new char[100];
        c = " hello";
        *p = 10;
        cout << "c= " << c << "*p = " << *p << endl;
        delete p;
        delete c;
        c = NULL;
        p = NULL;
        return 0;
}
Run Code Online (Sandbox Code Playgroud)

输出:

c=  hello*p = 10
Segmentation fault (core dumped)
Run Code Online (Sandbox Code Playgroud)

编辑:

如果我不使用new和删除字符数组,它是一个内存泄漏?我不能在我的代码中使用字符串,那么使用const char*variable的正确方法是什么?

提前致谢.

c++ linux pointers const char

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