V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
wjx0912
V2EX  ›  C++

求教, mac 下 cmake c++工程编译后 elf 里面还有很多路径字符串

  •  
  •   wjx0912 · 1 天前 · 240 次点击

    windows 也有这样的问题,后来参考 visual studio 设置 cpp flags 后解决了。 但是 mac 找了一堆参数还是不行。

    测试代码: https://github.com/PacktPublishing/Modern-CMake-for-Cpp/blob/main/examples/chapter06/05-dynamic/CMakeLists.txt 编译:

    cmake . -G "Unix Makefiles"
    cmake --build . --config Release
    

    生成的文件导出的 string 有本地文件夹路径字符串(但实际项目里面并没有用到__path__)

    下图是用 cutter (开源反编译工具 https://github.com/rizinorg/cutter ,类似 IDA pro )

    添加了一些参数(-flto ,-g0 还是不行),求大佬指点迷津

    2 条回复    2024-11-30 15:23:52 +08:00
    lixile
        1
    lixile  
       23 小时 16 分钟前
    取消-dynamic 的编译宏
    然后编译后 strip 一下
    ecnelises
        2
    ecnelises  
       4 小时 19 分钟前
    这个路径是 macOS ld 写到里面的 rpath ,你用 otool -l main_1 就能打印出来。rpath 是告诉 loader 启动程序时去哪里找依赖的动态库的路径列表。所以你要去搜能不能在 CMake 里改 rpath
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   2633 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 23ms · UTC 11:43 · PVG 19:43 · LAX 03:43 · JFK 06:43
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.