我有一个包含长循环的可执行文件,所以我想在后台运行它,如何在 Linux 中使用 bash 脚本执行此操作?
我知道一种方法是Ctrl+ z,然后我输入bg
,如何在 bash 脚本中模拟这些按键?
我有一个这样的向量:
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 ++代码中,我正在使用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) 我试图使用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需要完整路径。
我有这样的文件名
/mnt/opt/storage/ssd/subtitles/8/vtt/2011022669-5126858992107.vtt
如何*
使用正则表达式替换文件名,所以我得到
/mnt/opt/storage/ssd/subtitles/8/vtt/*
?
我知道简单的for循环拆分或boost::filesystem
方法,我正在寻找一种regex_replace
方法.
使用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)