我正在调试 OS X 上的一个问题,该问题仅在应用程序从扩展坞启动时出现。从命令行启动应用程序时不会发生这种情况。这两种情况有什么区别?我正在使用的代码是一个基于 c++ 的捆绑插件,正在第三方应用程序中加载。我在这两种情况下都使用 GDB 附加到进程,我能看到的唯一区别是从命令行运行时进程中加载了几个额外的 dylib,并且我的库的基址在两种情况。我已尝试将我的链接更改为 -prebind 和/或 -bind_at_load 但无济于事。
最佳答案
一个重要的区别是初始工作目录在每种情况下都不同。应用程序永远不应该对工作目录做出任何假设,如果他们这样做,将会以有趣的方式中断。
关于c++ - 从 dock 启动进程与 OS X 上的命令行有什么区别,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2553706/