При компиляции перидигма я сталкиваюсь со следующей ошибкой.
/usr/bin/ld: cannot find /usr/local/bin/trilinos-12.12.1/lib/libgaleri-xpetra.a: Too many open files
/usr/bin/ld: cannot find /usr/local/bin/trilinos-12.12.1/lib/libgaleri-epetra.a: Too many open files
/usr/bin/ld: cannot find /usr/local/bin/trilinos-12.12.1/lib/libaztecoo.a: Too many open files
/usr/bin/ld: cannot find /usr/local/bin/trilinos-12.12.1/lib/libisorropia.a: Too many open files
.
.
.
/usr/bin/ld: cannot find /usr/lib/gcc/x86_64-linux-gnu/5/../../../x86_64-linux-gnu/crtn.o: Too many open files
collect2: error: ld returned 1 exit status
src/io/mesh_input/quick_grid/unit_test/CMakeFiles/ut_QuickGrid_solidCylinder_np1.dir/build.make:1465: recipe for target 'src/io/mesh_input/quick_grid/unit_test/ut_QuickGrid_solidCylinder_np1' failed
make[2]: *** [src/io/mesh_input/quick_grid/unit_test/ut_QuickGrid_solidCylinder_np1] Error 1
CMakeFiles/Makefile2:1009: recipe for target 'src/io/mesh_input/quick_grid/unit_test/CMakeFiles/ut_QuickGrid_solidCylinder_np1.dir/all' failed
make[1]: *** [src/io/mesh_input/quick_grid/unit_test/CMakeFiles/ut_QuickGrid_solidCylinder_np1.dir/all] Error 2
.
.
[ 58%] Linking CXX static library libPeridigmLib.a
[ 58%] Built target PeridigmLib
Makefile:138: recipe for target 'all' failed
make: *** [all] Error 2
Я использовал инструкции в link, чтобы увеличить мягкий и жесткий предел процессов, используя следующее:
#@student - maxlogins 4
* hard nofile 97816
* soft nofile 97816
session required pam_limits.so
# End of file
Однако, даже после перезапуска терминала wsl после обновления файла limit.conf в соответствии с инструкциями в link, ulimit -n
все еще показывает 1024
вместо измененного значения. Почему оно не изменяется? Есть совет?
Я использую подсистему Windows для Linux Ubuntu 16.04.
/etc/security/limits.conf
- это конструкция PAM. Обычно PAM обрабатывает это во время входа в систему в «нормальном» Linux, но ... на самом деле вы не входите в WSL, поэтому PAM не вызывается .
Обходной путь, как описано ниже, тот же поток Github должен запускать sudo su $ USER
, sudo su - $ USER
или что-то в этом роде. (другие предложения см. в ветке). Результирующая оболочка будет обрабатывать limits.conf
через PAM, и вы должны иметь возможность поднять пределы там, как ожидалось ( ulimit -n 97816
, похоже, из вашего вопроса). Пока сборка peridigm остается в этой подоболочке, мы надеемся, что с вами все будет в порядке.
Ясно, что это не идеально, но, надеюсь, поможет вам преодолеть это препятствие.