gnuplot.exe путь не найден для записи в c ++ - PullRequest
1 голос
/ 22 октября 2019

Я новичок в gnuplot и пытался просто построить график случайных чисел, чтобы визуализировать распределение функции psuedo-random rand() в c ++. Однако я столкнулся с проблемой, которая кажется распространенной: путь не найден для gnuplot.exe.

Возможная соответствующая информация, прежде чем я продолжу:

Под управлением Windows 10 64-bit. Компилятор: CLion. Путь к gnuplot.exe: C:\Program Files (x86)\gnuplot\bin У меня есть последняя версия формы gnuplot sourceforge (по состоянию на 21.10.19: 5.2.7 я верю).

Я уже проверил этивопросы:

gnuplot-cpp не может передать команду в канал

Gnuplot & C ++: не удается найти gnuplot ни в PATH, ни в "

Я просмотрел много других вопросов, но они не имели отношения к моей проблеме. Я попытался реализовать ответы там и не добился прогресса. У меня такой же gnuplot_i.hpp файл и изменил строку проблемы:

#if defined(WIN32) || defined(_WIN32) || defined(__WIN32__) || defined(__TOS_WIN__)
std::string Gnuplot::m_sGNUPlotFileName = "gnuplot.exe";
std::string Gnuplot::m_sGNUPlotPath = "C:/Program_Files(x86)/gnuplot/bin/";

У меня также есть правильный PATH для gnuplot в качестве переменной среды и я могу выполнить gnuplot из cmd.

я получил следующие ошибки:

Cannot find gnuplot neither in PATH nor in "C:/Program_Files(x86)/gnuplot/bin"

и, когда я удалил "_" из пути выше и заменил его пробелом:

'C:\Program' is not recognized as an internal or external command,
operable program or batch file.

Последний являетсятолько тот, который появляется сейчас, хотя у меня больше нет места, как уже упоминалось,Путь - это известная ошибка с gnuplot. Я знаю, что Program_Files(x86) не является реальным путем, я просто пытался избавиться от второго сообщения об ошибке.

Мой main.cpp, если он вообще имеет значение:

#include <iostream>
#include "gnuplot_i.h"
#include <cstdlib>
#include <vector>

using namespace std;

int main(int argc, char* argv[]) {
    try {
        Gnuplot rand_plot("lines");
    }
    catch (GnuplotException ge) {
        cout << ge.what() << endl;
    }
    return 0;
}

Любая помощь в решении этих ошибок будет принята с благодарностью.

1 Ответ

0 голосов
/ 22 октября 2019

Ботье в комментариях решил проблему. Изменение строк 1714-1715 в gnuplot_i.h на std::string tmp = std::string("\"") + Gnuplot::m_sGNUPlotPath + "/" + Gnuplot::m_sGNUPlotFileName + std::string("\""); устранило проблему.

...