Ошибки при внедрении SymbolicC ++ в существующее решение

Я пытаюсь интегрировать библиотеку SymbolicC ++ в уже существующее решение. Мои спецификации следующие: Visual Studio 2010 RTM на ОС Windows 7.

Теперь моя проблема:

У меня уже есть решение, в котором я хочу интегрировать функцию с символьными переменными. Существует еще одна ранее интегрированная библиотека (OMPL «Open Motion Planning Library). Если я пытаюсь включить symbolicc ++. H, она не может скомпилировать решение из-за следующих ошибок:

Ошибка 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: «тип»: не является членом «глобального пространства имен» 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 ‘: недопустимый синтаксис для объявления-использования; ожидаемое квалифицированное имя 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.cpp87

Я совершенно уверен, что есть какая-то проблема между двумя библиотеками. Но я не заставляю его работать должным образом.
Есть одна строка (которая относится к ошибке 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);

2

Решение

Задача ещё не решена.

Другие решения


По вопросам рекламы [email protected]