using System.IO;
string[] filePaths = Directory.GetFiles(@"c:\MyDir\");
foreach (string filePath in filePaths)
File.Delete(filePath);
Я обнаружил это (в основном, касающееся статической компиляции модулей Python):
Здесь описывается файл, используемый для конфигурации, расположенный здесь:
<Python_Source>/Modules/Setup
Если этого файла нет, его можно создать, скопировав:
<Python_Source>/Modules/Setup.dist
Файл Setup
содержит тонны документации и README
, включенный в исходный код, также предлагает много хорошей информации о компиляции.
Я еще не пробовал компилировать, но думаю, что с этими ресурсами у меня все получится. Я опубликую свои результаты в качестве комментария здесь.
Чтобы получить чисто статический исполняемый файл python, вы также должны настроить следующим образом:
./configure LDFLAGS="-static -static-libgcc" CPPFLAGS="-static"
После сборки с включенными этими флагами вы, вероятно, получите много предупреждения о "переименовании из-за отсутствия библиотеки" s звездочка / звездочка слово «статический» и звездочка без пробелов)
б) раскомментируйте все модули, которые должны быть доступны статически (например, математика, массив и т. д.)
Вам также может потребоваться добавить определенные флаги компоновщика (как указано в ссылке, которую я разместил выше). По моему опыту, библиотеки работают без изменений.
Также может быть полезно запустить make следующим образом:
make 2>&1 | grep 'renaming'
Это покажет все модули, которые не компилируются из-за статической компоновки.
s звездочка / звездочка слово «статический» и звездочка без пробелов)б) раскомментируйте все модули, которые должны быть доступны статически (например, математика, массив и т. д.)
Вам также может потребоваться добавить определенные флаги компоновщика (как указано в ссылке, которую я разместил выше). По моему опыту, библиотеки работают без изменений.
Также может быть полезно запустить make следующим образом:
make 2>&1 | grep 'renaming'
Это покажет все модули, которые не компилируются из-за статической компоновки.
Using freeze doesn't prevent doing it all in one run (no matter what approach you use, you will need multiple build steps - e.g. many compiler invocations). First, you edit Modules/Setup
to include all extension modules that you want. Next, you build Python, getting libpythonxy.a. Then, you run freeze, getting a number of C files and a config.c. You compile these as well, and integrate them into libpythonxy.a (or create a separate library).
You do all this once, for each architecture and Python version you want to integrate. When building your application, you only link with libpythonxy.a, and the library that freeze has produced.
Вы можете попробовать ELF STATIFIER . Я использовал его раньше, и он работает довольно хорошо. У меня были проблемы с этим в нескольких случаях, и затем мне пришлось использовать другую аналогичную программу под названием Ermine . К сожалению, это коммерческая программа.