ppwwyyxx/OpenPano

在windows vs2015上配置问题

TayGei opened this issue · 7 comments

readme里面的步骤第二步,设置环境变量Eigen3是在哪里设置呀 找了半天没找到。。。。

我测试了一下,VS2019编译修改根目录CMakeLists.txt添加eigen路径,比如这样:
`
...

list(APPEND CMAKE_MODULE_PATH "D:/VS2019/eigen-3.4.0/cmake")
set(Eigen3_DIR "D:/VS2019/eigen-3.4.0/cmake")
set(EIGEN3_INCLUDE_DIR "D:/VS2019/eigen-3.4.0")
set(EIGEN3_INCLUDE_DIRS "D:/VS2019/eigen-3.4.0")

if(MSVC)
if(MSVC_VERSION LESS 1800) # 1700 = VS 2013
....
编译有一些bug,你需要调整一下,比如third-party/flann/util/serialization.h,版本太老,需要修订如下:
// declare serializers for simple types
BASIC_TYPE_SERIALIZER(char);
BASIC_TYPE_SERIALIZER(unsigned char);
BASIC_TYPE_SERIALIZER(short);
BASIC_TYPE_SERIALIZER(unsigned short);
BASIC_TYPE_SERIALIZER(int);
BASIC_TYPE_SERIALIZER(unsigned int);
BASIC_TYPE_SERIALIZER(long);
BASIC_TYPE_SERIALIZER(unsigned long);
BASIC_TYPE_SERIALIZER(float);
BASIC_TYPE_SERIALIZER(double);
BASIC_TYPE_SERIALIZER(bool);
#ifdef _MSC_VER
BASIC_TYPE_SERIALIZER(unsigned __int64);
#endif
`
其他错误,很简单解决,祝好运!

3>正在生成代码...
3>LINK : fatal error LNK1181: 无法打开输入文件“third-party\Release\lodepng.lib”
3>已完成生成项目“openpano.vcxproj”的操作 - 失败。
请问是我cmake错误么,我看了根本没有这个lib文件呢?

yxc-s commented

3>正在生成代码... 3>LINK : fatal error LNK1181: 无法打开输入文件“third-party\Release\lodepng.lib” 3>已完成生成项目“openpano.vcxproj”的操作 - 失败。 请问是我cmake错误么,我看了根本没有这个lib文件呢?

我也是这个情况,请问老哥解决了吗

TayGei commented
yxc-s commented

不好意思啊 之前我是直接让其他同学用linux跑的了 这个问题我当时也没有解决 但是后面有其他人给我发了一些解决方法 我转发给你你看看有用不吧 945794290 @.***  

------------------ 原始邮件 ------------------ 发件人: "ppwwyyxx/OpenPano" @.>; 发送时间: 2024年4月26日(星期五) 下午5:45 @.>; @.@.>; 主题: Re: [ppwwyyxx/OpenPano] 在windows vs2015上配置问题 (Issue #122) 3>正在生成代码... 3>LINK : fatal error LNK1181: 无法打开输入文件“third-party\Release\lodepng.lib” 3>已完成生成项目“openpano.vcxproj”的操作 - 失败。 请问是我cmake错误么,我看了根本没有这个lib文件呢? 我也是这个情况,请问老哥解决了吗 — Reply to this email directly, view it on GitHub, or unsubscribe. You are receiving this because you authored the thread.Message ID: @.***>

我在项目中将输出类型从dll改成lib解决了,感谢回复!

zkas commented

windows请使用静态库,动态库没有导出符号,用不了,如果需要使用动态库导出符号,比较麻烦。如何生成静态库,可以修改cmakelist的文件SHARED改为STATIC。关于c++版本问题:最好使用c++14,然后屏蔽filesystem;如果使用c++17,random_shuffle又被废弃了。另外在win且64位情况下,需要添加BASIC_TYPE_SERIALIZER(size_t),要不然也会编译失败