致力於將一些C++代碼從Linux移植到Windows。該代碼使用boost 1.4.2,但是它在構建boost模塊時仍然失敗。基本上,每個升壓hpp文件碰巧包含「命名空間提升」錯誤:失蹤';'在使用boost之前的命名空間之前1.4.2
error C2143: syntax error : missing ';' before 'namespace'
任何想法可能導致這種情況?
致力於將一些C++代碼從Linux移植到Windows。該代碼使用boost 1.4.2,但是它在構建boost模塊時仍然失敗。基本上,每個升壓hpp文件碰巧包含「命名空間提升」錯誤:失蹤';'在使用boost之前的命名空間之前1.4.2
error C2143: syntax error : missing ';' before 'namespace'
任何想法可能導致這種情況?
在包含Boost標頭之前丟失;
可能是造成這種情況的原因。下面的代碼產生這樣的錯誤:
struct X {} // << ; lost here
#include <boost/shared_ptr.hpp>
這個小代碼給我下面的錯誤:
boost/config/suffix.hpp(460) : error C2143: syntax error : missing ';' before 'namespace'
錯誤顯示了包含樹中的大約20個關卡......有關如何找到丟失的任何提示;? 另外...此代碼編譯在Linux上,我沒有改變它。 – 2010-03-23 13:39:45
檢查我的樣本。它會在'suffix.hpp'的某處產生錯誤。要找到錯誤,只需在首次包含Boost標頭之前打印';'。移動';'直到找到需要的地方。 – 2010-03-23 13:43:29
你有沒有嘗試過,包括在第一行這些boost頭文件?如果它們以這種方式編譯,那麼在它們之前包含的其中一個頭文件中可能缺少;
。
「符合ASNI的C代碼」 - 但boost是一個C++庫! – 2010-03-23 13:35:10
是啊...我早些時候正在做ansi C ...哎呀,現在修好了。 – 2010-03-23 13:37:00
你可以發佈一個演示錯誤的最小代碼示例嗎?畢竟,當你有語法錯誤時,通常可以幫助檢查*語法*。另外,你的意思是升壓1.42? 1.4.2會很*舊。 – 2010-03-23 13:40:39