2014-10-06 196 views
0

我的緩存模擬器工作,而執行我收到以下錯誤。 我正在使用Ubuntu終端來執行程序。 我,因爲我都映射到主程序的其他文件不理解,錯誤的問題。命令(Linux終端)的路徑設置

我是否需要爲程序設置路徑的任何目錄下執行呢?

起初給了權限,我執行下面的命令,這樣我不會得到「權限錯誤」

enter code here 
chmodx +x ./csim.c 

然後,我對最後的執行程序中執行以下命令

enter code here 
./csim.c [-hv] -s 5 -E 1 -b 5 -t traces/long.trace 

錯誤輸出端子

./csim.c: line 1: /bin: Is a directory 
./csim.c: line 2: cachelab.c: command not found 
./csim.c: line 3: cachelab.c: command not found 
./csim.c: line 4: cachelab.c: command not found 
./csim.c: line 5: cachelab.c: command not found 
./csim.c: line 6: cachelab.c: command not found 
./csim.c: line 7: cachelab.c: command not found 
./csim.c: line 8: cachelab.c: command not found 
./csim.c: line 9: cachelab.c: command not found 
./csim.c: line 10: cachelab.c: command not found 
./csim.c: line 11: traces/: Is a directory 

我該如何解決這個問題?

回答

0

您正試圖執行C源代碼文件,因爲你給它的「可執行」模式下的外殼將其解釋爲shell腳本。

要做的第一件事是編譯C文件,例如

cc csim.c -o csim 

...然後運行生成的可執行程序。

./csim [-hv] -s 5 -E 1 -b 5 -t traces/long.trace 
+0

我沒編譯,但我以不同的方式得到錯誤,我已經加入math.h中在頭文件戰俘和所有必要的信息,但是在功能'主: (+的.text 0x601 ):對'pow'的未定義引用 (.text + 0x89a):對'printSummary'的未定義引用 collect2:錯誤:ld返回1退出狀態 – Dvlop 2014-10-07 00:08:41

+0

即使包含正確的頭文件,編譯器也無法識別pow和printsummary (.text + 0x601):未定義的引用pow'(.text + 0x89a):未定義引用到'printSummary'collect2:錯誤:ld返回1退出狀態 – Dvlop 2014-10-07 00:15:02

+0

您需要鏈接包含函數的源文件。正如你所看到的,你可以用'-lm'標誌編譯鏈接到'pow()'。您還需要編譯並鏈接包含'printSummary()'的'.c'文件。 – Simon 2014-10-07 01:25:58