Вы можете запутать сценарии оболочки с помощью что-то вроде ofbsh . Тем не менее, вы не сможете легко объединить другие программы в один исполняемый файл для Unix. Обычно подход к установке заключается в создании пакета для диспетчера пакетов вашей платформы (например, rpm, deb, pkg ) или в предоставлении tar-файла, который можно распаковать соответствующий каталог.
Если вам нужен исполняемый файл, распаковывающий содержимое, вы можете использовать архив оболочки. Посмотрите на документы для shar (1) и посмотрите, получится ли то, что вы хотите
Если вам действительно нужна возможность написания сценариев для склеивания нескольких программ на Си, взгляните на язык Tcl. Он имеет API, предназначенный для тривиальной упаковки программ на C, которые ожидают увидеть параметры стиля argv[]
. Вы даже можете встраивать фрагменты кода C в собственный интерпретатор Tcl и склеивать его вместе с различными сценариями Tcl.
Если вам действительно нужно сделать его непрозрачным, вы можете зашифровать сценарии tcl и обернуть все это во что-то, что расшифрует сценарии tcl в буфер, а затем запустит на них интерпретатор Tcl. Tcl может принимать сценарии из файла или из буфера char*
, поэтому незашифрованные сценарии никогда не должны попадать в файловую систему.