歡迎來到Linux教程網
Linux教程網
Linux教程網
Linux教程網
Linux教程網 >> Linux基礎 >> Linux教程 >> Ubuntu安裝Insight 6.8.1

Ubuntu安裝Insight 6.8.1

日期:2017/2/28 16:04:45   编辑:Linux教程

1. insight下載地址 http://sourceware.org/insight/downloads.php

2. 解壓到Ubuntu中,我解壓的目錄如下:

/home/haowei/Downloads/insight-6.8-1

3. 進入insight-6-8-1目錄,執行./configure命令

4. 在執行make命令,編譯的時候會出現異常信息:

  1. cc1:warning being treated as errors
  2. linux-nat.c: In function 'linux_nat_info_proc_cmd':
  3. linux-nat.c:2879:error:ignoring return value of 'fgets',declared with attribute warn_unused_result

查看gdb/linux-nat.c的函數'linux_nat_info_proc_cmd':

這是因為 該函數中調用的fgets方法,沒有定義返回值。

源碼如下:

  1. if ((procfile = fopen (fname1, "r")) != NULL)
  2. {
  3. fgets (buffer, sizeof (buffer), procfile);
  4. printf_filtered ("cmdline = '%s'\n", buffer);
  5. fclose (procfile);
  6. }

修改後的代碼:

  1. if ((procfile = fopen (fname1, "r")) != NULL)
  2. {
  3. char * p=fgets (buffer, sizeof (buffer), procfile);
  4. printf_filtered ("cmdline = '%s'\n", buffer);
  5. fclose (procfile);
  6. }

類似的錯誤還有好幾處,涉及到的方法:write,getcwd,dup...

具體到哪個文件,執行make的時候會有提示的。

修改的時候給這些方法調用定義個返回值即可:

int p = write(....);

char * p=getcwd(....);

int p = dup(...);

注意,這些變量的定義應該放在函數內部的最前面。

另外還有一個gdb/eval.c的類,這個代碼編譯報錯是因為:

int subscript_array[MAX_FORTRAN_DIMS];

這個數組沒有初始化,給這個數組初始化即可編譯通過:

  1. if (nargs > MAX_FORTRAN_DIMS)
  2. error (_("Too many subscripts for F77 (%d Max)"), MAX_FORTRAN_DIMS);
  3. memset(&subscript_array,0,sizeof(subscript_array));

5. make執行完成之後,在執行sudo make install 即可完成安裝。

附圖一張,這是我編譯完成之後,insight運行程序的截圖:

Copyright © Linux教程網 All Rights Reserved