1
我寫了一個庫,我試圖靜態鏈接到我的主程序。我的主程序是用C++編寫的,但是庫是用C語言編寫的。我注意到庫中的一些調試printf語句運行了兩次,出於某種原因它們不應該出現,所以我開始註釋掉代碼。我現在留給這個(評論除外):printf打印兩次出於某種原因,cout似乎沒問題,雖然
#include <iostream>
extern "C"
{
include "audio.h"
}
int main(int argc, char** argv)
{
std::cout << "Hello" << std::endl;
audio_test();
std::cout << "World" << std::endl;
return 0;
}
功能音頻測試根本沒有意思。這是來自我想在我的C++項目中使用的C文件。
void audio_test()
{
printf("TEST\n");
}
從我的程序的輸出是這樣的:
Hello
TEST
TEST
World
我在這一點爲什麼發生這種情況不知道。
在「Hello」和std :: endl之前缺少「<<」。 – 2011-04-21 18:37:26
@Alex:要說清楚,你是說這兩個代碼片段是完整地顯示你的代碼的? – NPE 2011-04-21 18:38:24
請提供完整的可編譯示例。然後編譯它並確保它確實按照你所說的做。 – 2011-04-21 18:38:43