Я пытаюсь построить Stepmania (https://github.com/stepmania/stepmania @ master [a09e3477]) на OSX 10.10 с Xcode 6.0.1. У других есть successfully, сделанные так на OSX 10.10, хотя из-за даты слияния это должно было быть на более ранней версии инструментов командной строки Xcode, чем вчера было опубликовано, что я использую.Неожиданный errno 24 (слишком много открытых файлов) от ld linker
В конце Xcode сборки, шаг связь не удается:
/Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin/clang++ -arch i386 -isysroot /Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX10.9.sdk -L/Users/nilbus/stepmania -L/Users/nilbus/stepmania/Xcode/build/Debug -L/Users/nilbus/stepmania/Xcode/Libraries -L/Users/nilbus/stepmania/Xcode/../extern/mad-0.15.1b/msvc++/Release -L/Users/nilbus/stepmania/Xcode/ffmpeg -L/Users/nilbus/stepmania/Xcode/ffmpeg/lib -F/Users/nilbus/stepmania -F/Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX10.9.sdk/System/Library/Frameworks/Accelerate.framework/Versions/A/Frameworks -filelist /Users/nilbus/stepmania/Xcode/build/stepmania.build/Debug/stepmania.build/Objects-normal/i386/StepMania\ (Debug).LinkFileList -mmacosx-version-min=10.6 -dead_strip -no_dead_strip_inits_and_terms -lbz2 -fobjc-link-runtime -framework Accelerate -framework Cocoa -framework Carbon -framework IOKit -framework QuickTime -framework OpenGL -framework CoreFoundation -framework AudioToolbox -framework AudioUnit -framework CoreAudio -framework vecLib -logg_link -ltheora_link -lvorbis_link -llua-5.1-sm5 -ltomcrypt-sm5 -ltommath-sm5 -lz_link -lmad-sm5 -lpng-1.5.1-sm5 -lglew-sm5 -lpcre-sm5 -ljpeg-sm5 -lavcodec -lavdevice -lavfilter -lavformat -lavutil -lswresample -lswscale -Xlinker -dependency_info -Xlinker /Users/nilbus/stepmania/Xcode/build/stepmania.build/Debug/stepmania.build/Objects-normal/i386/StepMania\ (Debug)_dependency_info.dat -o /Users/nilbus/stepmania/StepMania\ (Debug).app/Contents/MacOS/StepMania\ (Debug)
с этой ошибкой:
ld: can't open file, errno=24 file '/Users/nilbus/stepmania/Xcode/build/stepmania.build/Debug/stepmania.build/Objects-normal/i386/Command.o' for architecture i386
clang: error: linker command failed with exit code 1 (use -v to see invocation)
Иногда я получаю эту ошибку вместо:
Bus error: 10
Обратите внимание, что связанный файл (в данном случае Command.o) не является детерминированным, но всегда находится в пределах 5 строк s ame area (около строки 250) из списка в stepmania/Xcode/build/stepmania.build/Debug/stepmania.build/Objects-normal/i386/StepMania (Debug).LinkFileList
из 400 файлов.
Согласно /usr/include/sys/errno.h, 24 слишком много файлов Открыто (в процессе, а также в общесистемной системе, что является ошибкой 23).
Предел может быть установлен для оболочки и ее детей с ulimit -n
. Он может быть увеличен только с помощью root. Так как корень:
$ <long clang++ command from above>
ld: can't open file, errno=24 file '/Users/nilbus/stepmania/Xcode/build/stepmania.build/Debug/stepmania.build/Objects-normal/i386/Command.o' for architecture i386
clang: error: linker command failed with exit code 1 (use -v to see invocation)
$ ulimit -n
2560
$ ulimit -n 10000
$ ulimit -n
10000
$ <long clang++ command from above>
ld: can't open file, errno=24 file '/Users/nilbus/stepmania/Xcode/build/stepmania.build/Debug/stepmania.build/Objects-normal/i386/Command.o' for architecture i386
clang: error: linker command failed with exit code 1 (use -v to see invocation)
Установка ulimit должна применяться к дочерним процессам, и это, безусловно, относится к подоболочкам. Увеличение предела дескриптора файла, однако, не влияет на сообщенные
Я принимаю неверные предположения? Что я могу сделать, чтобы узнать, каков фактический источник этой проблемы?
Чтобы попытаться воспроизвести:
- GIT клон https://github.com/stepmania/stepmania @ мастер [a09e3477]
- Открыть Stepmania/Xcode как Xcode проект
- Создание проекта