我正在Windows上使用CodeBlocks从事C++项目,但后来决定切换到NetBeans IDE 8.2。

在我的项目中,我正在调用另一个带有一些传递参数的可执行文件(我使用合适的参数运行另一个.exe,然后将其输出用于我的主项目中),并且它以前在CodeBlocks上起作用,但在NetBeans上不起作用。

代码如下:

#include <iostream>
#include <fstream>
#include <stdlib.h>
#include <cstdlib>
#include <string.h>
#include <sstream>
#include <vector>
#include <stdio.h>
#include <stdlib.h>
#include <windows.h>

#include "My_Constants.h"
#include "Data.h"
#include "Parameters.h"
#include "Pattern.h"
#include "Squish.h"
#include "Deserializer.h"
#include "Automatic_Run.h"

using namespace std;

int main()
{

    Parameters parameters;
    parameters.mode = SQUISH;
    Automatic_Run runner;
    string inputname;

    //--------------------------------User Input-------------------------------------
    cout << "enter input file name \n";
    getline(cin, inputname);
    parameters.inputFileName.assign(inputname);
    cout<<"=============================================================================\n";

    //--------------------------------Running SQUISH/first call--------------------------
    cout<<"Running SQUISH - first call\n";
    char command[1000]="";
    string passedParameters = " -i "+parameters.inputFileName +" -f "+ "t";
    strcat(command,"C:\\Users\\Administrator\\Documents\\CodeBlocksProjects\\TestSQUISH\\bin\\Debug\\TestSQUISH.exe ");
    strcat(command,passedParameters.c_str());
    int result = system(command);


 // the rest of the code(not relevant to the problem)

    return 0;
}

在CodeBlocks上,它曾经可以完美地工作,并在我的主项目(我从中调用TestSQUISH)的路径中将输出作为文件提供给我。但是,现在在NetBeans上,出现以下错误:



我检查了NetBeans的终端以了解正在发生的事情(假设它可能是相关的),并且我注意到必须先更改路径,然后使用以下命令运行可执行文件:



但是,这对我的项目也不起作用。

任何人都可以提出解决方案或告诉我如何让NetBeans像CodeBlocks一样在Windows终端上运行命令吗?

最佳答案

转到项目设置,然后将要执行的项目路径设置为另一个应用程序所在的文件夹。

要么

设置系统路径以包括该文件夹。

关于c++ - C++ “system(command)”在NetBeans/Windows上不起作用,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/59174310/

10-11 12:17