gprof findet file nicht



  • Hallo!
    Ich möchte gern quick_sort und shell_sort zeitlich analysieren.
    Ich arbeite unter Windows MinGW. cpp-File Name ist val.cpp
    Ich kompiliere mit
    g++ -pg val.cpp -o val

    Und rufe die funktion auf
    val

    Beim Aufruf von val zeigt er mir wie viel ints ich in datein habe.
    Aber beim Aufruf von
    gprof val

    sagt er mir:
    val:No such file or directory

    Wie muss ich denn gprof aufrufen?

    Danke im Voraus.

    Hier sind die codes:

    #include <iostream>
    #include <fstream>
    
    using namespace std;
    
    static void shell_sort(int a[], int size) {
    	int i, j;
    	int h = 1;
    
    	do {
    		h = h * 3 + 1;
    	} while (h <= size);
    
    	do {
    		h /= 3;
    		for (i = h; i < size; i++) {
    			int v = a[i];
    			for (j = i; j >= h && a[j - h] > v; j -= h)
    				a[j] = a[j - h];
    			if (i != j)
    				a[j] = v;
    		}
    	} while (h != 1);
    }
    
    static void quick_sort(int a[], int lo, int hi) {
    	int h, l, p, t;
    
    	if (lo < hi) {
    		l = lo;
    		h = hi;
    		p = a[hi];
    
    		do {
    			while ((l < h) && (a[l] <= p))
    				l = l + 1;
    			while ((h > l) && (a[h] >= p))
    				h = h - 1;
    			if (l < h) {
    				t = a[l];
    				a[l] = a[h];
    				a[h] = t;
    			}
    		} while (l < h);
    
    		t = a[l];
    		a[l] = a[hi];
    		a[hi] = t;
    
    		quick_sort(a, lo, l - 1);
    		quick_sort(a, l + 1, hi);
    	}
    }
    
    int main() {
    	int *a, *b;
    	int i;
    
    	a = new int[27];
    	b = new int[27];
    
    	ifstream fin;
    	fin.open("C:/Users/Katjuwka/Desktop/C/rands.txt",ios::in);
    
    	for (i = 0; i < 27 && !fin.eof(); i++) {
    		fin >> a[i];
    		b[i] = a[i];
    	}
    	cout << i << " ints read" << endl;
    
    	shell_sort(a, i);
    	quick_sort(b, 0, i - 1);
    	fin.close();
    
    }
    

  • Mod

    Eigentlich genau so. Also wird val wohl nicht da sein, wo du denkst, wo es ist.



  • Also wird val wohl nicht da sein, wo du denkst, wo es ist.

    Ich verstehe nicht.
    gprof ist nicht in windows?


  • Mod

    Wenn da steht val:No such file or directory dann wird val nicht gefunden. Also wird's wohl nicht da sein, wo du sagst, dass es da wäre. Wenn du das nicht verstehst, dann ist das auch kein Wunder, denn dann bist du irgendwo, aber bestimmt nicht da, wo val ist.



  • Wie konnte er denn
    g++ -pg val.cpp -o val

    kompilieren lassen,ohne richtige file oder directory zu finden?

    In Linux ist läuft es gut, aber unter Windows findet es das nicht.
    Wie kann ich dann val finden?
    Search? Es ergibt sich nur in val in genau da,wo es sein soll.
    Und ich habe auch in dieselbem directory gmon.out file


  • Mod

    Wie konnte er denn
    g++ -pg val.cpp -o val

    kompilieren lassen,ohne richtige file oder directory zu finden?

    😕 Welches Verzeichnis sollte wer dafür brauchen?

    Es ergibt sich nur in val in genau da,wo es sein soll.
    Und ich habe auch in dieselbem directory gmon.out file

    Und du rufst auch von diesem Verzeichnis aus gprof auf? Falls ja, dann wäre dein gprof kaputt. Kann ich nicht glauben.



  • Ich konnte hier screen shoot nicht posten, also ich poste dass, was ich da eingebe

    path c:\MinGW\bin;%PATH%
    > cd ...\Valgrid
    Valgrid>dir

    gmon.out
    rands.txt
    val.cpp

    Valgrid>g++ -pg val.cpp -o val

    Valgrid>val
    27 ints read
    Valgrid>dir

    gmon.out
    rands.txt
    val.cpp val.exe

    Valgrid>gprof val
    val:No such file or directory


  • Mod

    Die Datei heißt bei dir ja auch val.exe und nicht val.



  • danke


Anmelden zum Antworten