VS2019 popen не использует переменные среды

#c #visual-c #visual-studio-2019

Вопрос:

Я пытаюсь создать своего рода eval команду в своем проекте VS, и я столкнулся с ошибкой. Это мой код:

 #include <iostream>
#include <stdexcept>
#include <stdio.h>
#include <string>
#include <fstream>
using string = std::string;

string eval(string cmd) {
    std::ofstream ree;
    ree.open("WRITEFILE.cpp", std::ofstream::out | std::ofstream::trunc);
    ree << cmd;
    ree.close();
    char buffer[128];
   string result = "";
   const char* cmdstr = "g   WRITEFILE.cpp -o WRITE.exe amp;amp; WRITE.exe"; //   libraries once I get it working
   std::cout << cmdstr;
   FILE* pipe = _popen(cmdstr, "r");
   if (!pipe) {
      return "popen failed!";
   }
  while (!feof(pipe)) {

  // use buffer to read and add to result
  if (fgets(buffer, 128, pipe) != NULL)
     result  = buffer;
   }

   _pclose(pipe);
   return resu<
} 
 

Моя Path переменная среды включает мой каталог mingw bin, а также папку, в которой я храню все свои библиотеки; однако я получаю сообщение об ошибке 'g ' is not recognized as an internal or external command.' , кроме того, если я g заменю полный путь, он не найдет библиотеки в той же папке. Я знаю, что это не проблема с переменной среды, так как я использую G для всех своих небольших проектов (этот не работает с ним), и у меня не было никаких проблем. Я не знаю, куда теперь идти, поэтому буду признателен за любую помощь

Комментарии:

1. Вы недавно изменили переменную среды PATH? Я спрашиваю, потому что переменные среды наследуются от процесса владения.

2. Вы можете проверить переменную среды PATH, щелкнув свойства в своем проекте, затем Отладка -> Среда, затем Отредактируйте и введите $(Путь) в верхнем окне всплывающего окна. Visual Studio 2019 покажет значение среды ПУТИ, отправляемого приложению, когда оно будет отлажено в сообществе Visual Studio / Enterprise или Pro.

3. о… я совсем забыла, что изменила это! Похоже, в этом и была проблема… извините за это. Большое спасибо!

4. Если этот ответ решит вашу проблему, я был бы признателен, если бы вы могли написать их в качестве ответа и отметить их. Потому что это будет полезно для другого сообщества.

Ответ №1:

Вы можете проверить переменную среды PATH, щелкнув свойства в своем проекте, затем Отладка -> Среда, затем Отредактируйте и введите $(Путь) в верхнем окне всплывающего окна. Visual Studio 2019 покажет значение среды ПУТИ, отправляемого приложению, когда оно будет отлажено в сообществе Visual Studio / Enterprise или Pro. Спасибо @dresherjm