我试图在MAC OS X上检查AWS-CLI版本.以下错误回复:
dyld: Library not loaded: @executable_path/../.Python
Referenced from: /usr/local/aws/bin/python
Reason: image not found
Abort trap: 6
Run Code Online (Sandbox Code Playgroud)
任何有关如何解决这个问题的相关意见将受到高度赞赏.
我用VB创建了一个Windows应用程序.每当我执行时exe,我想以exe编程方式获取文件的当前目录.
例如,
现在,我正在执行该exe文件d:\myApp\test.exe.每当我双击exe文件时我想得到文件的路径exe就好d:\myApp\test.exe.
另外,假设我exe在CD或任何记忆棒中,它是否也会得到exe文件的路径?
我不知道这有可能吗?
有什么建议吗?
我能做到这一点:
return Assembly.GetEntryAssembly().GetName().Name;
Run Code Online (Sandbox Code Playgroud)
要么
return Path.GetFileNameWithoutExtension(Application.ExecutablePath);
Run Code Online (Sandbox Code Playgroud)
既能得到所需要的应用程序名称始终?如果是这样,这是获取应用程序名称的更标准方法?如果它仍然是一个不赢的局面,有什么比一种方法更快的速度吗?或者还有其他正确的方法吗?
谢谢.
操作系统是MacOS X,特别是PowerPC G4上的10.5(Leopard),但我在运行10.6的x86上遇到了同样的问题.
我正在编写一个动态加载DLL的应用程序.DLL(让我们称之为foo.dylib)是另一个应用程序的一部分,位于硬盘的其他位置; 我的应用程序以foo.dylib编程方式找到(确切的安置可能会改变,可能用户通过运行的应用程序本身的GUI指定DLL路径).例如,假设我的应用程序位于目录中/Application/MyApp.app/Contents/MacOS,并且foo.dylib恰好位于/Application/OtherApp.app/Contents/MacOS.DLL加载使用dlopen().
现在,事实证明,foo.dylib它本身需要一堆其他DLL,它们位于同一目录中,但我事先并不知道.每个这样的额外DLL都foo.dylib以诸如的路径注册@executable_path/bar.dylib.语义@executable_path是它应该被找到当前进程可执行文件的目录替换.这适用于OtherApp,不适合我:当我打开时foo.dylib,它会尝试加载bar.dylib,并且它会查找/Application/MyApp.app/Contents/MacOS/bar.dylib,这不是正确的目录.
解决方法是将DYLD_FALLBACK_LIBRARY_PATH环境变量设置为/Application/OtherApp.app/Contents/MacOS,但这必须在启动我的应用程序之前完成(该环境变量仅由动态链接器读取一次;以编程方式更改其值setenv()或putenv()不起作用).这与foo.dylib文件位置的动态发现不兼容.
是否有一种编程方式来覆盖效果@executable_path?