Я использую Visual Studio 2012.
У меня есть проект консоли Win32, содержащий исходный файл «1.cpp». Я хочу скомпилировать другой файл C ++ (скажем, «2.cpp») из исходного кода «1.cpp».
Я пробовал это:
int main()
{
system("C:\\\"Program Files (x86)\"\\\"Microsoft Visual Studio 11.0\"\\VC\\vcvarsall.bat");
system("C:\\\"Program Files (x86)\"\\\"Microsoft Visual Studio 11.0\"\\VC\\bin\\cl.exe /EHsc 2.cpp");
}
Я делаю это, потому что хочу скомпилировать «2.cpp», используя параметр /D
для определения макроса внутри «2.cpp», значение которого вычисляется в «1.cpp».
Что-то вроде этого -:
int main()
{
string mystring;
system("C:\\\"Program Files (x86)\"\\\"Microsoft Visual Studio 11.0\"\\VC\\vcvarsall.bat");
system(("C:\\\"Program Files (x86)\"\\\"Microsoft Visual Studio 11.0\"\\VC\\bin\\cl.exe /EHsc /DMYMACRO="+mystring+" 2.cpp").c_str());
}
Несмотря на выполнение "vcvarsall.bat" перед вызовом "cl.exe", я все еще получаю сообщение об ошибке: "Программа не запускается, поскольку на вашем компьютере отсутствует файл mspdb110.dll. Попробуйте переустановить программу, чтобы решить эту проблему. . "
Как упоминалось здесь, мне может потребоваться установить некоторые переменные среды.
Есть ли какой-либо способ сделать это без необходимости установить переменные окружения? Если нет, то как я могу установить эти переменные из исходного кода «1.cpp»?