2017-09-06 2 views
-3

J'essaie de comprendre comment compiler du code C++ à partir d'un exécutable lors de l'exécution à l'aide du compilateur Visual Studio sous Windows.Compilation de fichiers C++ pendant l'exécution à l'aide du compilateur Visual Studio

Je vais utiliser Visual Studio IDE pour générer le projet principal dans un exécutable et utiliser CreateProcess pour compiler d'autres fichiers C++ et créer une DLL pour charger/utiliser/décharger ultérieurement cette DLL. Je comprends qu'une façon de faire cela nécessite de définir des variables d'environnement (principalement PATH, INCLUDE et LIB) et il y a un fichier .bat appelé "vcvarsall.bat" qui le fait.

La partie avec laquelle je suis coincé est le (s) argument (s) passé (s) à ce fichier séquentiel. Je vois que le premier argument est la plate-forme avec certaines des options étant x86, amd64, arm, etc. Mais comment est-ce que je devine par programme quel est l'un de ces arguments que je devrais utiliser en considérant l'exécutable principal celles-ci?

Répondre

1

Vous pouvez préparer une solution standard à cet effet, contenant un projet avec un seul fichier, et l'utiliser pour compiler votre fichier facilement. Maintenant, tout ce dont vous avez besoin est de récupérer votre fichier au nom du fichier dans le projet et de compiler une solution avec la ligne de commande. Vous pouvez également modifier le projet et remplacer le nom de fichier existant par votre nom de fichier.

Pour ce faire, vous devez résoudre la variable d'environnement% DevEnvDir% et exécutez la commande folowing avec le nom de la plate-forme (x64, win32 etc.) et le nom de configuration (Release ou Debug)

comme ceci:

%DevEnvDir%\devenv.com \path\to\yoursolution.sln /ReBuild "Release|x64"