cmake生成的visual studio解决方案无法构建

时间:2017-04-15 20:14:03

标签: visual-studio qt boost cmake

我目前正在研究Windows 10上的一个项目,并被要求使用一些c ++代码。代码是以平台独立性为基础编写的。所以我使用给定的cmake文件来构建可视化工作室解决方案(VS 2015 Update 3)。但是当我尝试构建解决方案时,它会给我900多个错误和警告。

使用cmake和g ++在mac上成功构建了相同的项目。该项目本身使用Qt gui和一些额外的库,如boost。

要了解您必须知道的错误,解决方案包含5个项目:ALL_BUILD,iModControll,iModDaemon,iModView和ZERO_CHECK

有很多错误,如:

  

缺少类型说明符 - 假设为int。注意:C ++不支持default-int

     

不一致的dll绑定

     

未找到声明

     

之前的意外令牌;

     

依旧......   您可以看到完整列表here

我对cmake很新,而不是VS专家,所以请帮助我理解这里出了什么问题。再次:代码在OSX下完美编译。

修改

我使用mingw,正如@MaxGo建议的那样。之后错误和警告减少了。这就是我现在所拥有的:

  

警告:void DC_TermFunc()'在使用dll链接引用后重新声明没有dllimport属性

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

错误:函数'void DC_SendData(char,char *,int)'定义标记为dllimport

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

其他错误类似。我的问题是:将c ++源代码移植到Windows时是否存在任何已知问题,为什么它不会显示VS中的错误数量,以及如何解决这些错误?

1 个答案:

答案 0 :(得分:0)

CMake配置 - Boost- Visual Studio - C ++

步骤1:下载CMake安装文件,安装并保存在本地磁盘

步骤2:在本地磁盘中创建2个文件夹a)原始文件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选择浏览源中的Raw File文件夹和浏览构建中的Solution File Folder。

步骤5:单击“配置”。成功后,单击“生成”。

步骤6:打开Solution File文件夹时,您可以看到构建的解决方案文件。单击它,您的程序将在Visual Studio中打开。现在,在VS中构建你的程序。

希望这有帮助!