Sophus VS2010编译不支持?C++11语法的缘故。那有没有不带C++11特性的Sophus版本呢?

Eigen:3.1 3.0

Ceres:No

Sophus:

Sophus支不支持Windows编译?官网写的是通过了Windows的编译的

linux, os x: TravisCI windows: AppVeyor code coverage: ci_cov

Sophus

Overview

This is a c++ implementation of Lie groups commonly used for 2d and 3d geometric problems (i.e. for Computer Vision or Robotics applications). Among others, this package includes the special orthogonal groups SO(2) and SO(3) to present rotations in 2d and 3d as well as the special Euclidean group SE(2) and SE(3) to represent rigid body transformations (i.e. rotations and translations) in 2d and 3d.

Cross platform support 跨平台支持

Sophus compiles with clang and gcc on Linux and OS X as well as msvc on Windows. The specific compiler and operating system versions which are supported are the ones which are used in the Continuous Integration (CI): See TravisCI andAppVeyor for details.

Sophus可以在Windows的msvc微软编译器以及Linux和OS X上的clang和gcc编译器上编译通过。特指的编译器和操作系统版本是这些用在Continuous Integration (CI)中的:看TravisCI和AppVeyor查看更多信息。

However, it should work (with no to minor modification) on many other modern configurations as long they support c++11, CMake, and Eigen 3.X.

但是,它应该工作在很多其他的当代的配置中,只要它们支持c++11, CMake和Eigen3.X。

Sophus实际上是Eigen库的扩展模块,Eigen中虽然有几何模块,但是没有提供李代数的支持,所以Sophus算是一个比较好的李代数库,安装参考之前博文。

find_package(Sophus REQUIRED)
include_directories(${Sophus_INCLUDE_DIRS})
add_executable(project_name project_name.cpp)
target_link_libraries(project_name ${Sophus_LIBRARIES})

CMake Warning (dev) at CMakeLists.txt:16 (IF):
Policy CMP0054 is not set: Only interpret if() arguments as variables or
keywords when unquoted. Run "cmake --help-policy CMP0054" for policy
details. Use the cmake_policy command to set the policy and suppress this
warning.

Quoted variables like "MSVC" will no longer be dereferenced when the policy
is set to NEW. Since the policy is not set the OLD behavior will be used.
This warning is for project developers. Use -Wno-dev to suppress it.

CMake Warning (dev) at CMakeLists.txt:20 (ELSEIF):
Policy CMP0054 is not set: Only interpret if() arguments as variables or
keywords when unquoted. Run "cmake --help-policy CMP0054" for policy
details. Use the cmake_policy command to set the policy and suppress this
warning.

Quoted variables like "MSVC" will no longer be dereferenced when the policy
is set to NEW. Since the policy is not set the OLD behavior will be used.
This warning is for project developers. Use -Wno-dev to suppress it.

SLAM中常用库的CMake写法(如何添加各种依赖库) http://blog.csdn.net/felaim/article/details/72621540

VS对C++11的支持情况列举:链接

Sophus library for Windows 7 compiled with VS2013:http://download.csdn.net/detail/aopaw/9808970

github上Strasdat实现的那个李群包,这个版本是Stevenlovegrove维护的那个没有使用C++11的一些内容,在Windows 7上做了点修改编译通过了,可以用于一些SLAM方法。The Sophus library maintained by Stevenlovegrove is here compiled on a Windows 7 with VS2013. It is available for something that related to the Lie algebra, for example, visual SLAM.

stevenlovegrove/Sophus:https://github.com/stevenlovegrove/Sophus

简介:

Sophus (version 0.9)

C++ implementation of Lie Groups using Eigen.

Thanks to Steven Lovegrove, Sophus is now fully templated  - using the Curiously Recurring Template Pattern (CRTP).

(In order to go back to the non-templated/double-only version "git checkout a621ff".)

Installation guide:

>>>
cd Sophus
mkdir build
cd build
cmake ..
make
<<<
原文地址:https://www.cnblogs.com/2008nmj/p/7065200.html