我想現在編譯別人的代碼,而該人使用可變HZ(我認爲這代表赫茲的CPU的赫茲),但編譯器抱怨變量未定義。我的猜測是這個人沒有包含正確的頭文件。HZ變量沒有定義
因此,沒有人知道它的頭文件,HZ的定義?
感謝
編輯:編制適用於Debian的g ++ 4.3.2版
我使用的設置 - OSX 10.5.8豹,G ++版本4.0.1是它失敗。
我想現在編譯別人的代碼,而該人使用可變HZ(我認爲這代表赫茲的CPU的赫茲),但編譯器抱怨變量未定義。我的猜測是這個人沒有包含正確的頭文件。HZ變量沒有定義
因此,沒有人知道它的頭文件,HZ的定義?
感謝
編輯:編制適用於Debian的g ++ 4.3.2版
我使用的設置 - OSX 10.5.8豹,G ++版本4.0.1是它失敗。
Paul's answer是正確的,但我會擴大一點。
Linux有其確定內核的計時器的頻率編譯時選擇。在大約HZ定義的頻率上,內核調度程序將中斷進程並開始其調度工作。 (一個相關的功能是DynTicks選項,它會消除HZ值,並根據工作負載改變中斷頻率。)最常見的設置是100.高度響應的系統可能使用1000.最近的內核版本使用默認值250.系統計算量大的工作負載可能會使用較小的值(以最大限度地減少調度程序的影響)。
因此,它是一個Linux特有的非常價值,你只會發現它在/usr/include/asm/param.h
定義由於100是一種共同的價值,您可能會在簡單地增加-DHZ=100
您CXXFLAGS
變量是安全的。這將決不意味着該計劃實際上將工作在OS X上,只知道它可能編譯。
可以預期來自於命令行:
c++ -DHZ=1000 file.cpp -o file.o
很難說更W/O的更多細節。這是什麼操作系統?
在我的Linux機器,它在/usr/include/asm/param.h:#define HZ 100
的已定義我找不到一個定義在我的Mac OS X框中的任意位置。
這是OSX豹10.5.8,G ++ 4.0.1版本。我在Debian上用g ++版本4.3.2試了一下,結果很奏效。也許我的g ++太老了? – Opt 2009-12-26 02:46:21