使用cmake生成makefile,編譯時,出現redefine main 的錯誤提示,該提示是由於在工程中,出現了兩個或者以上的main函數,
多由寫測試程序,程序中包含了main函數,然後在搬進開發的工程中時,忘了註釋掉main函數,原來工程中有一個main函數,
所以出現兩個main函數定義的錯誤.
嘗試把測試文件中的main函數註釋掉,再編譯,但還是出現重複定義main函數的錯誤,grep搜索一下main函數包含在哪些文件,
發現下面文件中也包含了一個main函數,猜想大概是第一次沒有刪除測試文件中的main函數,然後生成makefile的過程中,
將main函數寫入了文件CMakeCXXCompilerId.cpp, 後面即使註釋掉了,但是main函數仍在這個文件中存在,所以,必須刪除
CMakeCXXCompilerId.cpp這個文件,步驟如下:
///>第一步:刪除CMakeCXXCompilerId.cpp文件
$ rm /home/xhq/src/server/gateserver/CMakeFiles/3.0.0/CompilerIdCXX/CMakeCXXCompilerId.cpp
///>第二步:make clean 清空編譯中間文件
$ make clean
///>第三步:編譯
$ make
此時,就可編譯通過,不會再報告main函數重複定義的錯誤