Правильный способ - создать свой инсталятор, который в свою очередь все развернет, скопирует и спросит пользователя куда, nsis тебе уже посоветовали. Есть по проще - самораспаковывающиеся архивы, sfx модули есть по до все от winrar до zip
Есть не самый тривиальный способ хранения файлов прямо в exe-шнике как часть данных в секции .data, для c/c++ это создание объектного .obj файла с последующей его линковкой, при запуске такие данные доступны нативно без предварительной загрузки (формально операционная система мапит exe-шник в память и загружает данные по мере необходимости максимально эффективно).
Сделать это можно с помощью xxd (генерирует cpp вида data = {0x11,0x22,...) явно не самый эффективный способ но зато самый универсальный, либо с помощью objcopy
https://habr.com/ru/post/545946/
https://stackoverflow.com/questions/47414607/how-t...
https://medium.com/@irony.superman/convert-binary-...