我有一個靜態C庫,可以使用不同的編譯時間選項(例如_BUILD_SMALL,_BUILD_FAST)來構建。它有一個功能如何別名C庫函數?
void Foo(void);
我想使用基準測試工具的單個實例來測試庫的「小」和「快」版本。我不想使用.dlls。
如何鏈接到「小」和「快」庫並將函數名稱別名,以便我可以調用小版本和快速版本。理想情況下,會看起來像:
void benchmark(void)
{
FAST_Foo();
SMALL_Foo();
}
的更多信息:
庫可以用不同的優化選項-Os與-O3建成。此外,算法略有不同(即緩存值與始終查找值)。我想比較不同版本的大小與速度權衡。我希望單元測試和基準測試能夠以最簡單的方式在庫的兩個版本上運行。
這個問題是非常非常明確。 – Falmarri 2012-08-15 20:36:13
爲什麼不簡單地創建多個版本,並打開/關閉各種選項並對每個版本進行基準測試? – 2012-08-15 20:37:24
如果兩個函數的命名相同(且不是靜態的),則不能將這兩個函數組合在一個鏈接中。 – mah 2012-08-15 20:42:39