簡體   English   中英

從另一個.cpp文件的主體編譯一個.cpp文件

[英]Compiling a .cpp file from the body of another .cpp file

我一直在使用Microsoft Visual Studio 2010命令提示符來編譯原始.cpp文件並分析其輸出的應用程序。 我遇到了很多麻煩,而且在線上似乎沒有太多內容。 這是麻煩的代碼:

#include <iostream>
using namespace std;
...
string name = "cl /EHsc ";
name += "example.cpp";
system("setupcppenv.bat"); // A short batch file I wrote to launch the VC++ cmd prompt without launching another instance of cmd
system(name.c_str());

當我執行(嘗試編譯example.cpp)時,出現錯誤:

嚴重錯誤C1043:iostream:沒有包含路徑集

我對批處理文件或使用命令提示符編譯器不是很有經驗。 我究竟做錯了什么?!

另外,有沒有其他方法可以從應用程序內部進行編譯?

謝謝!

每個system()調用都會調用一個單獨的進程,因此,在該進程結束后,您在setupcppenv.bat文件中設置的所有環境變量都將被丟棄。

您應該做的是,將您在.bat文件中設置的環境變量添加到系統環境中,或者至少添加到您啟動應用程序的cmd實例的環境中,以便它們被進程繼承由system()調用啟動。

我不知道setupcppenv.bat什么,我想您正在對該批處理文件中的環境變量進行更改。 發生的事情是,當批處理腳本結束時,那些環境變量更改丟失了,因為它們僅限於批處理腳本的過程以及該過程的所有子級。

設置將起作用的環境變量的一種方法是在程序中使用setenv()putenv()函數。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM