小编ras*_*spy的帖子

构建 glibc 时未定义对 _dl_cet_check 的引用

库班图 19.10

我完全遵循了该指示

$ mkdir $HOME/src
$ cd $HOME/src
$ git clone git://sourceware.org/git/glibc.git
$ mkdir -p $HOME/build/glibc
$ cd $HOME/build/glibc
$ $HOME/src/glibc/configure --prefix=/usr
$ make
Run Code Online (Sandbox Code Playgroud)

但是在最后一个命令“make”期间,我收到以下错误(仅给出输出的结尾):

make[3]: Leaving directory '/home/denis/src/glibc/elf'
gcc   -nostdlib -nostartfiles -r -o /home/denis/build/glibc/elf/librtld.os '-Wl,-(' /home/denis/build/glibc/elf/dl-allobjs.os /home/denis/build/glibc/elf/rtld-libc.a -lgcc '-Wl,-)' \
          -Wl,-Map,/home/denis/build/glibc/elf/librtld.os.map
gcc   -nostdlib -nostartfiles -shared -o /home/denis/build/glibc/elf/ld.so.new          \
          -Wl,-z,combreloc -Wl,-z,relro -Wl,--hash-style=both -Wl,-z,defs       \
          /home/denis/build/glibc/elf/librtld.os -Wl,--version-script=/home/denis/build/glibc/ld.map            \
          -Wl,-soname=ld-linux-x86-64.so.2                      \
          -Wl,-defsym=_begin=0
/usr/bin/ld: /home/denis/build/glibc/elf/librtld.os: in function `_rtld_main_check':
/home/denis/src/glibc/elf/../sysdeps/x86/dl-prop.h:33: undefined reference to `_dl_cet_check'
/usr/bin/ld: /home/denis/src/glibc/elf/../sysdeps/x86/dl-prop.h:33: undefined reference to `_dl_cet_check'
/usr/bin/ld: …
Run Code Online (Sandbox Code Playgroud)

ubuntu glibc

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

How do I understand how std::make_shared works?

I came across an elegant line of reading a binary file into a vector like this (that works):

        std::ifstream ifs("myfile.bin", std::ios::binary);
        std::vector<char> buffer(std::istreambuf_iterator<char>(ifs), {});
Run Code Online (Sandbox Code Playgroud)

Instead since I want my vector to be a shared pointer I write:

        std::ifstream ifs("myfile.bin", std::ios::binary);
        auto sp = std::make_shared<std::vector<char>>(std::istreambuf_iterator<char>(ifs), {});
Run Code Online (Sandbox Code Playgroud)

I.e just pass the vector constructor arguments to make_shared (as I usually do to create any shared pointer of any objects). But I get: error: no matching function for call to 'make_shared'?

Detailed output:

/usr/include/c++/11.1.0/bits/shared_ptr.h|873 …

c++ shared

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

标签 统计

c++ ×1

glibc ×1

shared ×1

ubuntu ×1