我正在尝试将SymbolicC ++库集成到现有的解决方案中。我的规范如下:Windows 7操作系统上的Visual Studio 2010 RTM。
现在我的问题:
我已经有了一个解决方案,我希望将函数与symblic变量集成。还有另一个以前集成的库(OMPL“开放运动规划库”。)如果我尝试包含symbolicc ++。它无法通过这些错误编译解决方案:
错误10错误C2825:'_ Fty':后跟'::'c:\ Program Files(x86)\ Microsoft Visual Studio 10.0 \ VC \ include \ xxresult 28`
后必须是类或命名空间错误11错误C2903:'结果':符号既不是类模板也不是函数模板c:\ Program Files(x86)\ Microsoft Visual Studio 10.0 \ VC \ include \ xxresult 28
错误12错误C2039:'结果':不是'`全局命名空间'的成员'c:\ Program Files(x86)\ Microsoft Visual Studio 10.0 \ VC \ include \ xxresult 28
错误13错误C2143:语法错误:缺少';'在'<'之前c:\ Program Files(x86)\ Microsoft Visual Studio 10.0 \ VC \ include \ xxresult 28
错误14错误C2039:'type':不是'`global namespace''的成员c:\ Program Files(x86)\ Microsoft Visual Studio 10.0 \ VC \ include \ xxresult 28
错误15错误C2238:';'之前的意外令牌c:\ Program Files(x86)\ Microsoft Visual Studio 10.0 \ VC \ include \ xxresult 28
错误16错误C2039:'_ Type':不是'std :: tr1 :: _ Result_type2< __ formal,_Fty,_Arg0,_Arg1>'的成员c:\ Program Files(x86)\ Microsoft Visual Studio 10.0 \ VC \ include \ xxresult 40
错误17错误C2146:语法错误:缺少';'在标识符'_Type'c之前:\ Program Files(x86)\ Microsoft Visual Studio 10.0 \ VC \ include \ xxresult 40
错误18错误C4430:缺少类型说明符 - 假定为int。注意:C ++不支持default-int c:\ Program Files(x86)\ Microsoft Visual Studio 10.0 \ VC \ include \ xxresult 40
错误19错误C2602:'std :: tr1 :: _ Result_of2< _Fty,_Farg0,_Farg1> :: _ Type'不是'std :: tr1 :: _ Result_of2< _Fty,_Farg0,_Farg1>的基类的成员;” c:\ Program Files(x86)\ Microsoft Visual Studio 10.0 \ VC \ include \ xxresult 40
错误20错误C2868:'std :: tr1 :: _ Result_of2< _Fty,_Farg0,_Farg1> :: _ Type':using-declaration的非法语法;预期的限定名称c:\ Program Files(x86)\ Microsoft Visual Studio 10.0 \ VC \ include \ xxresult 40
错误21错误C2678:二进制'==':找不到运算符,它接受类型为'std :: tr1 :: _ Bind_fty< _Fty,_Ret,_BindN>'的左手操作数(或者没有可接受的转换)D:\ Software \ RobotKitV3.0 \ SensorPluginMotionPlanner \ Zusatz \ ompl_4_RK \ RK_ServerSensor_ompl \ RK_ServerSensor_ompl \ ServerSensor_ompl.cpp 2587
我很确定这两个库之间存在一些问题。但我没有让它正常工作。 当我从中更改它时,有一行(称为错误21):
if(bind(serverSocket, (sockaddr*) &addressServer, sizeof(addressServer)) == SOCKET_ERROR)
对此:
if(::bind(serverSocket, (sockaddr*) &addressServer, sizeof(addressServer)) == SOCKET_ERROR)
我不再有这些错误了!但是,当我尝试启动.exe时,它失败了 有这个错误:
应用程序无法正确启动(0xc000007b)。单击“确定”关闭应用程序
除非我排除该行:
#include <symbolicc++.h>
有人有想法让这项工作成功吗?令人沮丧的是,我试图实施symbolicc ++。h 5天以来无法执行我的解决方案。
编辑:
所以我取得了一些进展。如果我只是注释掉除了下面这段代码之外的所有内容,那么就不会再出现错误了。
#include "stdafx.h"
#include <iostream>
#include <conio.h>
#include <windows.h>
#include <winsock.h>
#include <fstream>
#include <iostream>
#include <string>
#include <WinBase.h>
#include "..\..\SymbolicC++\include\symbolicc++.h"
#include "ServerSensor_ompl.h"
#include <ompl/base/SpaceInformation.h>
#include <ompl/base/spaces/SE3StateSpace.h>
#include <ompl/base/spaces/SE2StateSpace.h>
#include <ompl/base/spaces/SO2StateSpace.h>
#include <ompl/geometric/planners/rrt/RRTConnect.h>
#include <ompl/geometric/SimpleSetup.h>
#include <ompl/config.h>
#include <ompl/geometric/planners/rrt/RRT.h>
#include <ompl/geometric/planners/rrt/RRTConnect.h>
#include <ompl/geometric/planners/rrt/RRTStar.h>
Symbolic Test("Test");
namespace ob = ompl::base;
namespace og = ompl::geometric;
namespace ob_Con_WP = ompl::base;
namespace og_Con_WP = ompl::geometric;
namespace ob_Con_RC = ompl::base; // Robot_Cell
namespace og_Con_RC = ompl::geometric; // Robot_Cell
WSADATA wsa;
struct sockaddr_in addressServer;
int commSocket, serverSocket;
bool RK_active = true;
int m_bufferLength = 0;
int m_bufferLength2 = 0;
const size_t BufferSize = 100000;
char m_buffer[BufferSize];
char m_buffer2[BufferSize];
int Trial_Cart = 0;
int Trial_Joint = 0;
int Trial_Constraint_WP = 0;
int Trial_Constraint_RC = 0;
int Trial_General = 0;
bool Have_Exact_Solution;
std::fstream f;
int countCalls = 0;
int countCallLimit = 1000;
double Constraint_Bounds[2][6];
ob::StateSpacePtr space_Joint(new ob::RealVectorStateSpace(6));
ob::StateSpacePtr space_Cart(new ob::SE3StateSpace);
ob_Con_WP::StateSpacePtr space_Constraint_WP(new ob_Con_WP::RealVectorStateSpace(6));
ob_Con_RC::StateSpacePtr space_Constraint_RC(new ob_Con_RC::RealVectorStateSpace(6));
ob_Con_RC::SpaceInformationPtr si(new ob_Con_RC::SpaceInformation(space_Constraint_RC));
int _tmain(int argc, _TCHAR* argv[])
{
std::cout << "OMPL version: " << OMPL_VERSION << std::endl;
std::cout << std::endl << std::endl;
system("pause");
}
但是,例如,如果我尝试将此行放在我的代码中,则在尝试执行时会出现相同的错误(0xc000007B)。
og::SimpleSetup ss_Cart(space_Cart);