4

我编写了一个动态库,通过设置名为 DYLD_INSERT_LIBRARIES 的环境变量加载到一些目标应用程序中,dylib 加载并在应用程序通过以下命令从终端执行时工作正常:

$ export DYLD_INSERT_LIBRARIES=/path/to/mylib.dylib
$ /path/to/application.app/Contents/MacOS/executable

然后我通过编辑 info.plist 文件中的 LSEnvironment 部分来设置 DYLD_INSERT_LIBRARIES 的值。一些苹果标准应用程序,如 TextEdit 和 Calculator 成功加载了我的库,但此设置对 InDesign、Photoshop 等应用程序没有影响...

为什么没有为某些应用程序设置环境变量?有人对此有想法吗?谢谢你。

4

1 回答 1

0

正如您没有进一步说明的那样,我假设您也通过终端启动 Photoshop 等(?)这使得在 LSEnvironment 中设置的这些环境变量无效,因为这些仅由通过“启动服务”启动的进程使用......

如果您通过“启动服务”启动它,您是否检查过您的库不是简单地通过程序通过 dlclose() 卸载的?...

于 2012-07-14T20:28:25.190 回答