精華區beta C_and_CPP 關於我們 聯絡資訊
※ 引述《azurewind (鮮血的結末)》之銘言: : 使用CC編譯的時候出現的問題... ^^ 請問這個 CC 究竟是哪套系統上的 C compiler 呢? 通常會取這種名字似乎是某種 Unix, 但這樣太籠統。 試著在命令列打 uname -a 然後請將結果貼上來。 : 那行敘述是如下: : problem = (isnan(sum) || !finite(sum)); : 請問是發生什麼問題呢? ANSI C 並未提供 finite() 這個函式/巨集,但在 BSD 系列的 Unix 或 GNU 系統中的 <math.h> 則包含了這兩個函式,檢查 看看你有沒有 #include <math.h> 如果有,還出現這種訊息, 就表示你的系統不提供這個在ANSI C 標準之外,因而缺乏可 移植性的函式。 解決之道呢?或者將 finite 改成 isfinite 或者到 /usr/include/ 目錄下 grep finite * 看看有沒有什麼 類似而可用的函式/巨集。像 MS VC 的話,則是以 _finite() 的方式提供,並收在 float.h (及 cfloat ) 中。 -- ※ 發信站: 批踢踢實業坊(ptt.cc) ※ 編輯: khoguan 來自: 220.130.208.168 (07/29 11:22) > -------------------------------------------------------------------------- < 作者: azurewind (鮮血的結末) 看板: C_and_CPP 標題: Re: [問題] Error: The function "finite" must h … 時間: Fri Jul 29 12:15:22 2005 ※ 引述《khoguan (Khoguan Phuann)》之銘言: : ※ 引述《azurewind (鮮血的結末)》之銘言: : : 使用CC編譯的時候出現的問題... : ^^ : 請問這個 CC 究竟是哪套系統上的 C compiler 呢? : 通常會取這種名字似乎是某種 Unix, 但這樣太籠統。 : 試著在命令列打 uname -a 然後請將結果貼上來。 : : 那行敘述是如下: : : problem = (isnan(sum) || !finite(sum)); : : 請問是發生什麼問題呢? : ANSI C 並未提供 finite() 這個函式/巨集,但在 BSD 系列的 : Unix 或 GNU 系統中的 <math.h> 則包含了這兩個函式,檢查 : 看看你有沒有 #include <math.h> 如果有,還出現這種訊息, : 就表示你的系統不提供這個在ANSI C 標準之外,因而缺乏可 : 移植性的函式。 : 解決之道呢?或者將 finite 改成 isfinite : 或者到 /usr/include/ 目錄下 grep finite * 看看有沒有什麼 : 類似而可用的函式/巨集。像 MS VC 的話,則是以 : _finite() 的方式提供,並收在 float.h (及 cfloat ) 中。 作業系統是 SOLARIS 8 改成ISFINTE似乎不行 INCLUDE了MATH.H也是 gamma [usr/include]% grep finite *.* curses.h: /* <0: for infinite delay */ ieeefp.h:extern int finite(double); 有找到以下的FINITE函式 那請問該如何修改呢? 另外這是錯誤訊息 "matrix.cc", line 212: Error: The function "isfinite" must have a prototype. "matrix.cc", line 578: Error: The function "finite" must have a prototype. "matrix.cc", line 790: Error: The function "finite" must have a prototype. 3 Error(s) detected. *** Error code 3 -- ╔╗ ╔╝ ╗╔╝ 是我的,我的,我的。 ║ -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 163.25.118.40
UNARYvvv:那就 #include <ieeefp.h> 試試看?? 61.70.137.117 07/29
> -------------------------------------------------------------------------- < 作者: khoguan (Khoguan Phuann) 看板: C_and_CPP 標題: Re: [問題] Error: The function "finite" must h … 時間: Fri Jul 29 12:59:13 2005 ※ 引述《azurewind (鮮血的結末)》之銘言: : : 解決之道呢?或者將 finite 改成 isfinite : : 或者到 /usr/include/ 目錄下 grep finite * 看看有沒有什麼 : : 類似而可用的函式/巨集。像 MS VC 的話,則是以 : : _finite() 的方式提供,並收在 float.h (及 cfloat ) 中。 : 作業系統是 SOLARIS 8 : 改成ISFINTE似乎不行 INCLUDE了MATH.H也是 : gamma [usr/include]% grep finite *.* : curses.h: /* <0: for infinite delay */ : ieeefp.h:extern int finite(double); : 有找到以下的FINITE函式 那請問該如何修改呢? 那就是 ieeefp.h 中的 finite() 只要在程式前面加上 #include <ieeefp.h> 原先寫的 problem = (isnan(sum) || !finite(sum)); 就不用改了。 <math.h> 一樣還是要 include 進來。 可以在命令列打 man finite 確認 ieeefp.h 中的 finite() 是否就是你要的。相信如果一開始你就這樣做,就不用來問人了 :-) -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 220.130.208.168