小编use*_*367的帖子

Bash:在后台运行一个可执行文件

我有一个包含长循环的可执行文件,所以我想在后台运行它,如何在 Linux 中使用 bash 脚本执行此操作?

我知道一种方法是Ctrl+ z,然后我输入bg,如何在 bash 脚本中模拟这些按键?

linux bash shell

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

c ++没有用于调用向量push_back的匹配函数

我有一个这样的向量:

std::vector<std::unique_ptr<Service> > m_vec;
Run Code Online (Sandbox Code Playgroud)

我可以像这样运行 push_back:

m_vec.push_back(std::make_unique<Service>());
Run Code Online (Sandbox Code Playgroud)

但是当我像这样运行它时:

std::unique_ptr<Service> pt = std::make_unique<Service>();
m_vec.push_back(pt);
Run Code Online (Sandbox Code Playgroud)

我有错误 no matching function for call to ‘std::vector<std::unique_ptr<Service> >::push_back(std::unique_ptr<Service>&)

是否&意味着我正在推送对向量的引用?如果是这样,为什么我不能推送参考?

c++ c++11

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

ISO C++禁止声明..没有带-std = c ++ 0x设置的类型

在我的c ++代码中,我正在使用auto类型,为了启用c ++ 11,我将标志添加--std=c++0x到我的makefile中,但是我仍然得到错误ISO C++ forbids declaration of .. with no type,如果我用-std=gnu++11或启用c ++ 11 -std=c++11,我得到了cc1plus: error: unrecognized command line option "...",我的gcc版本是4.3.4,我该怎么解决这个问题?谢谢.

没有启用c ++ 11,我得到ISO C++ forbids declaration of wallclock with no type以下行的错误:

auto wallclock  = time(nullptr);
Run Code Online (Sandbox Code Playgroud)

c++ c++11

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

何时会忽略LD_PRELOAD

我试图使用LD_PRELOAD在系统中包装一些函数,我首先导出环境变量LD_PRELOAD以指向我的.so文件,然后运行系统,我总是得到,ERROR: ld.so: object '/full/path/to/wrap.so' from LD_PRELOAD cannot be preloaded: ignored.所以我尝试在手册页上了解LD_PRELOAD:

首先要加载的其他用户指定的ELF共享库的列表。列表中的项目可以用空格或冒号分隔。这可用于有选择地覆盖其他共享库中的函数。使用DESCRIPTION下给出的规则搜索库。对于set-user-ID / set-group-ID ELF二进制文件,仅当在库文件中启用了set-user-ID许可权位时,才会忽略包含斜杠的预加载路径名,并且仅加载标准搜索目录中的库。

首先,我不是100%理解上述文字

对于set-user-ID / set-group-ID ELF二进制文件,包含斜杠的预加载路径名将被忽略

如果我不能使用斜杠,如何设置LA_PRELOAD的完整路径?

其次,它说

并且仅在以下情况下加载标准搜索目录中的库:

什么是标准搜索目录?

我的最后一个问题是了解何时会忽略LD_PRELOAD?谢谢您的帮助。

编辑:

当我将LD_PRELOAD导出到共享库中时,/usr/lib/像这样:export LD_PRELOAD=shared-lib.so,我摆脱了上面的错误,但是我没有root特权,所以我不能在下面放置任何文件/usr/lib/,对此有什么建议吗?我认为,如果我可以设法导出LD_PRELOAD而没有任何斜杠,那应该可以,但是除非共享库文件位于中/usr/lib/,否则LD_PRELOAD需要完整路径。

c linux

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

c ++ regex从文件路径获取文件夹

我有这样的文件名

/mnt/opt/storage/ssd/subtitles/8/vtt/2011022669-5126858992107.vtt

如何*使用正则表达式替换文件名,所以我得到

/mnt/opt/storage/ssd/subtitles/8/vtt/*

我知道简单的for循环拆分或boost::filesystem方法,我正在寻找一种regex_replace方法.

c++ regex

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

/tmp/ccQ0q0g5.o:(.eh_frame+0x11):未定义引用`__gxx_personality_v0'colle2:ld返回1退出状态

使用Makefile进行编译时,出现错误

/tmp/ccQ0q0g5.o:(.eh_frame+0x11): undefined reference to `__gxx_personality_v0'
collect2: ld returned 1 exit status
Run Code Online (Sandbox Code Playgroud)

似乎缺少一些.so.a文件,但我怎么知道这样的错误报告缺少哪一个?

Makefile文件:

CFLAGS = -Iinclude/
CFLAGS += -m32 
LDFLAGS = -Llib -llits -lrt -lpthread -Wl,-R,'lib'
server:server.cc
    gcc -o server $(CFLAGS) $(LDFLAGS) server.cc
Run Code Online (Sandbox Code Playgroud)

c++ gcc makefile

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

标签 统计

c++ ×4

c++11 ×2

linux ×2

bash ×1

c ×1

gcc ×1

makefile ×1

regex ×1

shell ×1