2017-04-15 91 views
0

我目前正在研究Windows 10上的項目,並被要求使用一些C++代碼。代碼是以平臺獨立的方式編寫的。所以我使用給定的cmake文件來構建一個visual studio解決方案(VS 2015 Update 3)。但是當我嘗試構建解決方案時,它會給我提供超過900個錯誤和警告。cmake生成的視覺工作室解決方案無法構建

使用cmake和g ++在mac上成功構建了同一個項目。該項目本身使用Qt gui和一些額外的庫,如boost。

要了解你要知道的錯誤,該解決方案包括5個項目:ALL_BUILD,iModControll,iModDaemon,iModView和ZERO_CHECK

有想了很多錯誤:

missing type specifier - int assumed. Note: C++ does not support default-int

inconsistent dll binding

declaration not found

unexpected token before ;

and so on... You can see the full list here

我對cmake非常新穎,而不是VS專家,所以請幫助我理解這裏出了什麼問題。再說一遍:在OSX下完美編譯的代碼。

編輯:

我用MinGW的,作爲@MaxGo建議。之後,錯誤和警告就減少了。以下是我現在有:

warning: void DC_TermFunc()' redeclared without dllimport attribute after being referenced with dll linkage

void DC_TermFunc(void) 
    { 
    if(controller) 
    { 
    qDebug() << "Terminating iModSkynet"; 
    runthread->terminate(); 
    delete runthread; // This will delete the controller too 
    } 
    } 

error: function 'void DC_SendData(char, char*, int)' definition is marked dllimport

IMODCONTROLLSHARED_EXPORT void DC_SendData(char oc, char* data, int length) 
    { 
    QByteArray qdata = QByteArray(data, length); 
    controller->sendBlenderCommunication(oc, qdata); 
    } 

其他錯誤是相似的。我的問題是:在將C++源代碼移植到Windows時,是否存在任何已知問題,爲什麼它沒有顯示與VS中一樣多的錯誤,以及我可以如何解決這些錯誤?

+2

這個問題幾乎沒有代碼本身就沒用。在提供代碼之前,請注意它應該是某種[mcve] - Stack Overflow是針對特定問題的,而不是「幫我調試一些大代碼」。但是,最好是谷歌每個具體的錯誤,並採取適當的行動:要麼糾正代碼,要麼改變編譯器選項。 – Tsyvarev

+0

如果您的項目之前從未使用Visual Studio msvc編譯器構建過,則最重要的是它不會「從框中」工作。您可以嘗試在Windows上使用MinGW構建項目,這可能會更好。 –

+0

@MaxGo非常感謝您的幫助!我編輯了我的帖子,使問題更清楚。 – Carlz

回答

0

CMake的配置 - 助推的Visual Studio - C++

第1步:下載安裝的CMake文件,安裝並保存在本地磁盤

第2步:創建本地磁盤2個文件夾)生文件b)解決方案文件

第3步:原始文件文件夾 - 創建Main.cpp文件並粘貼您的原始C++代碼它並保存。現在在同一個文件夾中創建一個名爲CMakeLists的txt文件,並在其中粘貼以下代碼並保存。

cmake_minimum_required(VERSION 3.7) 
project (cmboosttest) 
#find_package(Boost REQUIRED) 
#include_directories(${Boost_INCLUDE_DIR}) 
add_executable(boosttest ${PROJECT_SOURCE_DIR}/Main.cpp) 

第4步:打開CMake在瀏覽源和解決方案文件夾中選擇原始文件夾瀏覽生成。

第5步:單擊配置。一旦成功,請點擊生成。

第6步:當您打開解決方案文件文件夾時,您可以看到內置的解決方案文件。點擊它,你的程序將在Visual Studio中打開。現在,在VS中構建你的程序。

希望這會有所幫助!