全國最多中醫師線上諮詢網站-台灣中醫網
發文 回覆 瀏覽次數:1586
推到 Plurk!
推到 Facebook!

【問題】complier的問題函式問題

尚未結案
senboy
一般會員


發表:18
回覆:7
積分:5
註冊:2005-01-07

發送簡訊給我
#1 引用回覆 回覆 發表時間:2005-01-07 14:31:30 IP:140.113.xxx.xxx 未訂閱
我有兩台電腦一台是灌Red hat 9 一台是用mandrake 10.1  1.  從網路上抓了一個程式下來make 在red hat 9那台可以順利跑完  可是在mandrake 10.1 那台會出現  multivac_format.cpp:74: error: `sqrt' undeclared (first use this function)  所以我加了#includ<math.h>這邊就compiler過 為什麼沒加includ<math.h>的可以在redhat9 compiler完成在mdk不行 我看了一下/usr/lib mdk裏沒有 libm.a 用find也找不到 我要抓什麼套件來裝嗎, compiler不過是跟這邊有關嗎 有網友說是在glibc-static-devel裏, 我把所有程式開發的套件都裝上,還是一樣的問題 2. mdk10.1加#include<math.h>後有新問題 In file included from track.cpp:16: newvelocity.cxx: In constructor `Multivac::CNewVelocity::CNewVelocity()': newvelocity.cxx:45: error: `dependence_position' undeclared (first use this func tion) trace了一下code track.cpp 裏 include "newvelocity.cxx" dependence_position是在newvelocity.cxx裏使用 但是在 另一個baseclass.hxx裏的class裏定義 而這個class有用namespace Multivac包起來 track.cpp也有using namespac 不知是哪出問題,因為這部份在RedHat那台一樣可以compiler過 在MDK就不行了 , 我已把MDK裏所有的程式開發套件全選安裝了 是否RedHat有MDK的沒有的程式開發套件嗎 請各位高手指教一下 附上該程式網址 http://spacetown.free.fr/fronts/MultivacDisplay-2.1.tgz
rexchiu
中階會員


發表:14
回覆:88
積分:70
註冊:2002-03-17

發送簡訊給我
#2 引用回覆 回覆 發表時間:2005-01-21 12:10:43 IP:220.130.xxx.xxx 未訂閱
1.看你的錯誤訊息,是在編譯狀態就錯了 multivac_format.cpp:74: error: `sqrt' undeclared (first use this function)  還沒到link階段,因此不懂你去找libm.a有什麼意義.而且通常沒有指定的話應該也不會去連結libm.a(這是靜態連結),應該會是去動態連結libm.so之類的. sqrt 這個funciton 應該是#include <math.h>吧! 2.像這種問題,可以試著去調整一下#include的順序. 因為很可能 .h的裡面的寫法不同而有所衝突! Best Regards, Rex Chiu
------
Best Regards,
Rex Chiu
senboy
一般會員


發表:18
回覆:7
積分:5
註冊:2005-01-07

發送簡訊給我
#3 引用回覆 回覆 發表時間:2005-03-02 16:56:29 IP:140.113.xxx.xxx 未訂閱
我有解決了,但不太了解是怎樣 1. 在/usr/bin/ 看到了g ,gcc跟另兩個叫g 33,gcc33的 就試把makefile的g 都改用g 33 結果compiler過了...... g 33是指gcc 3.3.x版的compiler嗎?? 現在的gcc是3.4.2 要在3.4下compiler要加include< math.h> 或用 -lm 2. 用3.4.x某些情況 類似: 在xxx.h 裏namespce下的class內定義的變數在其他yyy.h裏include xxx.h,然後zzz.c includ yyy.h等多層引用的情形 會出現undeclear ,first use...的問題 因為是新手實在不知3.4.x是改變了哪些,研究到現在的就這樣..
rexchiu
中階會員


發表:14
回覆:88
積分:70
註冊:2002-03-17

發送簡訊給我
#4 引用回覆 回覆 發表時間:2005-03-03 11:53:07 IP:220.130.xxx.xxx 未訂閱
引言: 我有解決了,但不太了解是怎樣 1. 在/usr/bin/ 看到了g ,gcc跟另兩個叫g 33,gcc33的 就試把makefile的g 都改用g 33 結果compiler過了...... g 33是指gcc 3.3.x版的compiler嗎?? g 33 指g 3.3.x 版的. 你可以下這個指令 g 33 --version 或是 g 33 --help 以得知進一步的資料! 也許你會想知道 g 跟gcc有啥不同,下面節錄自gcc的help(用man gcc查到的資訊) g is a program that calls GCC with the default language set to C , and automatically specifies linking against the C library. 現在的gcc是3.4.2 要在3.4下compiler要加include< math.h> 或用 -lm 2. 用3.4.x某些情況 類似: 在xxx.h 裏namespce下的class內定義的變數在其他yyy.h裏include xxx.h,然後zzz.c includ yyy.h等多層引用的情形 會出現undeclear ,first use...的問題 因為是新手實在不知3.4.x是改變了哪些,研究到現在的就這樣..
Best Regards, Rex Chiu 發表人 - rexchiu 於 2005/03/03 11:59:41
------
Best Regards,
Rex Chiu
系統時間:2024-05-14 23:50:39
聯絡我們 | Delphi K.Top討論版
本站聲明
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。
2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。
3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇!