如何在g++中从链接库中删除路径
How to remove path from linked library in g++
我生成了一个库,其中包含以下库:
使用的命令:
g++-o测试库-Xlinker-R/med/build/gcc/gcc-6.2.0/lib-ggdb3-m32-fno树矢量化文件1.o fileMain.o mylibrary.so-lm-lsdc++-lsupc++
libpthread.so.0 => /lib/libpthread.so.0 (0xf7bc4000)
libstdc++.so.6 => /med/build/gcc/gcc-6.2.0/linux32/gcc-6.2.0/lib/libstdc++.so.6 (0xf7a4b000)
libm.so.6 => /lib/libm.so.6 (0xf7a22000)
libgcc_s.so.1 => /med/build/gcc/gcc-6.2.0/linux32/gcc-6.2.0/lib/libgcc_s.so.1 (0xf7a07000)
libc.so.6 => /lib/libc.so.6 (0xf78ac000) /lib/ld-linux.so.2 (0x00796000)
我想从libstdc++和libgcc_s库中删除路径"/med/build/gcc/gcc-6.2.0/linux32/gcc-6.2.0
"。
给g++什么选项来删除这些路径并使其与libpthread相同
请注意,这是一个运行时链接器搜索路径,它没有编码到共享库的文件名中。-R
链接器选项将该路径嵌入到正在生成的对象的RPATH
条目中。用readelf -d testmylibrary
检查。
运行时链接器首先在RPATH
条目中提到的目录中搜索所需的共享库,然后在标准位置中搜索。碰巧/med/build/gcc/gcc-6.2.0/linux32/gcc-6.2.0/lib
包含这些库,所以动态链接器使用它们。
如果删除-R /med/build/gcc/gcc-6.2.0/linux32/gcc-6.2.0/lib
选项,则运行时链接器在搜索所需的共享库时不会使用该路径。
您也不需要显式地链接到-lstdc++
和-lsupc++
,g++
可以为您做到这一点。
相关文章:
- 将数组的地址分配给变量并删除
- 如何删除所有子路径?
- 如何自动获取我的项目的路径并删除一些文件
- 如何从 CLion 的运行窗口中删除程序项目路径
- 如何在g++中从链接库中删除路径
- 无法删除 c++ 中具有完整路径的文件
- 如何从std :: filesystem ::路径中删除引号
- PySide 2的Shiboken2删除了原始头文件的路径
- 尝试使用窗口注册表中的路径和 DeleteFile() 方法删除.exe文件
- 如何从 qmake 中的包含路径中删除项目的根目录
- 在 cpp 中验证路径:无法使用 ASCII 代码删除特殊字符
- 如何删除"..使用 Visual Studio 2012 类的文件路径中的 /' 令牌<filesystem>?
- 获取路径删除和串联字符
- 尝试从__FILE__中删除项目路径
- 如何删除回收站中路径过长的文件夹或文件
- C ++如何从路径字符串中删除文件名
- 从Makefile中的c可执行文件中删除硬编码的路径
- 从用户提供的路径中删除前导"../"
- 通过删除点链接和重复斜杠来规范Unix文件路径
- MinGW GCC.exe正在从路径中删除所有