Вы не ищете перестановки - вы хотите декартово произведение . Для этого используйте product из itertools:
from itertools import product
for roll in product([1, 2, 3, 4, 5, 6], repeat = 2):
print(roll)
Предупреждение, опция -L позволяет указать путь для поиска библиотек, указать библиотеку, которую вы хотите связать с вами (также) необходимо использовать параметр -l
. чтобы добавить опции -lrpcmod -lnfs -lrpcsec -lklmmod -lzfs
Более подробно в GCC Linking Options
По умолчанию компоновщик GNU, вызываемый через драйвер компилятора gcc
, пытается создать стандартный исполняемый файл. Следовательно, если вы не укажете иное, ld
будет использовать свой скрипт компоновщика по умолчанию, код запуска C и будет искать подпрограмму main()
и все остальное, что делает допустимый исполняемый файл.
Я не слишком знаком с Solaris, но готов поспорить, что он не подойдет для сборки модулей ядра. Я ожидаю, что модулям ядра, по крайней мере, потребуются некоторые опции, такие как -ffreestanding
, -nostdlibs
и, скорее всего, скрипт компоновщика не по умолчанию, который, вероятно, сильно отличается от скрипта по умолчанию, используемого для приложений.
Даже если вам удастся связать ваши модули ядра таким образом, я серьезно сомневаюсь, что вы закончите. Инструментарий gcov
, скорее всего, не ожидает, что он будет находиться в драйвере ядра, но ожидает надлежащей среды исполнения C (например, он будет, по крайней мере, ожидать fopen()
файла, чтобы fwrite()
его результаты). Драйвер ядра, однако, не имеет этого комфорта. Вы, вероятно, столкнетесь с проблемой, чтобы каким-то образом получить данные gcov
из ваших модулей ядра.
Не сказать, что это не выполнимо, но это, безусловно, будет много работы.