我目前正在研究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中的错误数量,以及如何解决这些错误?
答案 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中构建你的程序。
希望这有帮助!