Похоже, что параметр '-pie' прерывает компиляцию Sniper. Я попытался добавить его на свой домашний компьютер, и он не прошел с той же ошибкой. Удаление его из строки кластера и компоновщик завершается успешно.
Как упомянул пользователь siblenx, OpenSUSE (по крайней мере, тот, что находится в кластере) заставляет исполняемые файлы использовать PIE при связывании, в то время как Linux Mint этого не делает.
Простое добавление -fno-pie
к вызову компоновщика $ (TARGET) в файле standalone / Makefile
отменяет COLLECT_GCC_OPTIONS -pie
и вроде все работает правильно.
ldd pin_sim.so
по-прежнему не работает, но это совсем другая проблема. На самом деле, я мог бы задать отдельный вопрос по этому поводу.
-k1,2
означает «сортировать все строки, сравнивая одновременно содержимое всех полей с 1 по 2»; поэтому «1,0 1» сравнивается с «10 2» и т. д.
-k1,1 -k2,2
означает «сортировать все строки, сравнивая содержимое поля 1, а когда две строки имеют одинаковое содержимое в поле 1, сравнивая содержимое поля 2»; поэтому «1,0» сравнивается с «10», затем «2» с «4» и т. д.
То, что происходит затем, в обоих случаях сводится к сопоставлению, в частности к взвешиванию. Цифры обычно имеют больший вес, чем знаки препинания и пробелы. При сравнении «1,0 1» и «10 2» разница из-за запятой игнорируется, потому что цифры разные. При сравнении «1,0» и «10» единственная разница — это запятая, поэтому она больше не игнорируется. Подробнее см. ISO 14651 .
Вы можете установить LC_COLLATE=C
для сопоставления только на основе значений символов без веса. Оба ваших примера приводят к
1,0 1
1,0 3
10 2
10 4
при использовании языкового стандарта «C».