我在开发的C++应用程序中遇到问题,该应用程序使用dlopen加载用户开发的库.在过去的几年里,应用程序已被各种各样的人使用在各种Linux发行版和OSX版本上,因此我假设我使用dlopen是可以的,依赖于它的代码也是如此(是的,这是狂妄自大,所以当它失败时我会报告回来.我现在遇到的问题是用户开发了一个不在我的系统上加载的库(OSX 10.6.4).当系统尝试加载它时会发生冻结然后崩溃.在崩溃报告中崩溃的线程如下所示:
Thread 5 Crashed:
0 com.apple.CoreFoundation 0x00007fff80fa6110 __CFInitialize + 1808
1 dyld 0x00007fff5fc0d5ce ImageLoaderMachO::doImageInit(ImageLoader::LinkContext const&) + 138
2 dyld 0x00007fff5fc0d607 ImageLoaderMachO::doInitialization(ImageLoader::LinkContext const&) + 27
3 dyld 0x00007fff5fc0bcec ImageLoader::recursiveInitialization(ImageLoader::LinkContext const&, unsigned int) + 236
4 dyld 0x00007fff5fc0bc9d ImageLoader::recursiveInitialization(ImageLoader::LinkContext const&, unsigned int) + 157
5 dyld 0x00007fff5fc0bc9d ImageLoader::recursiveInitialization(ImageLoader::LinkContext const&, unsigned int) + 157
6 dyld 0x00007fff5fc0bc9d ImageLoader::recursiveInitialization(ImageLoader::LinkContext const&, unsigned int) + 157
7 dyld 0x00007fff5fc0bc9d ImageLoader::recursiveInitialization(ImageLoader::LinkContext const&, unsigned int) + 157
8 dyld 0x00007fff5fc0bc9d ImageLoader::recursiveInitialization(ImageLoader::LinkContext const&, unsigned int) + 157
9 …Run Code Online (Sandbox Code Playgroud) 我无法让自制软件在Lion上工作.出于某种原因,它正在捡起clang而不是gcc.
==> Upgrading gnutls
...
checking for gcc...
/usr/bin/clang checking whether the C compiler works... no
Run Code Online (Sandbox Code Playgroud)
'brew doctor'说:
We couldn't detect gcc 4.2.x. Some formulae require this compiler. NOTE: Versions of XCode newer than 4.2 don't include gcc 4.2.x.
Run Code Online (Sandbox Code Playgroud)
注意:我已经从XCode安装了命令行工具,包括gcc.
$ which gcc
/usr/bin/gcc
$ gcc -v
gcc version 4.2.1 (Based on Apple Inc. build 5658) (LLVM build 2336.9.00)
Run Code Online (Sandbox Code Playgroud)
我如何强制brew使用gcc?