分享

科学网

 南氏珍藏 2017-01-19

因为重装了几次系统,遇到了一些小问题。总的来说,对于一个没有编程经验的人来说,初次编译开源软件的源码都会遇到各种各样的问题,这些问题都不大,属于难者不会、会者不难的类型,但是屡次尝试还是会遇到不少问题,这里把我最近几次下载源码遇到的问题简单总结一下,希望能对同道中人有所帮助。


一、源码的下载方法


      在opensees网站进入developer -->download 页面,有明确的下载方法。

       首先你要安装TortoiseSVN 

       安装完后,选择你要下载源码的地方新建文件夹(最好新建一个空文件夹来放源码),重命名为一个合适的英文名,右键选Export,将地址设为 svn://opensees.berkeley.edu/usr/local/svn/OpenSees/trunk 即可。


二、 初次编译


       打开下载的源程序,在 \win32 文件夹里面有两个解决方案文件

       一个是 OpenSees.sln, 这个目前默认是用VS2010编译的

       一个是OpenSeesVC6.sln,我用的VS2012编译,上一个会报错,因此用的这个解决方案,此时VS会自动对它进行升级。

升级完成后,便可以选择“生成——生成解决方案”或者按F7进行编译。


       编译后,系统会报错,可以仔细看一下报错的内容,然后针对解决。


       第一类报错是找不到Tcl有关的文件夹,这是由于tcl没有安装到opensees源程序默认的位置而引起的,这个比较bug,请注意,opensees源程序默认tcl应该安装在“C:\Program Files\tcl”,但是你安装tcl时,默认的文件夹是“C:\tcl”。此时需要对源文件的设置做一些更改:

       (1)在项目上按右键,在 属性\配置属性\C/C++ 中设置附加包含目录,将里面的”C:\Program Files\tcl”或者“C:\Program Files\tcl\include”改成实际的路径。

        (2)有的项目则是,在 “属性\配置属性\库管理器\附加库目录”  或者 “属性\配置属性\链接器\常规\附加库目录” 里做类似更改。


        下面的这些报错是与VS2012有关的:

         (1)报错 error LNK2026: 模块对于 SAFESEH 映像是不安全的

           这个报错是  Opensees、openseesTK 和 quickmain 三个项目的,需要在“属性\配置属性\链接器\命令行 ”的 “其他选项”里输入 /SAFESEH:NO

          (2)报错 error MSB8020: The builds tools for Visual Studio 2010 (Platform Toolset = ‘v100′) cannot be found.

           选中解决方案,右键“更新VC++项目”

           (3)报错 error LNK2038: 检测到“_MSC_VER”的不匹配项: 值“1600”不匹配值“1700”

             方法:在项目右键属性-配置属性-常规中,平台工具集选用为合适平台即可,选择 vs2010 (v100).

或者选择为“从父级或项目默认设置继承”


               这一错误的解释如下,转自网络:

               MSC_VER 定义编译器的版本。下面是一些编译器版本的_MSC_VER值:
               MS VC++ 10.0 _MSC_VER = 1600
               MS VC++ 9.0 _MSC_VER = 1500
               MS VC++ 8.0 _MSC_VER = 1400
               MS VC++ 7.1 _MSC_VER = 1310
               MS VC++ 7.0 _MSC_VER = 1300
               MS VC++ 6.0 _MSC_VER = 1200
               MS VC++ 5.0 _MSC_VER = 1100
               其中MS VC++ 10.0就是Visual C++ 2010,MS VC++ 9.0就是Visual C++ 2008,MS VC++ 8.0就是Visual C++ 2005。
               原因:由于你使用了vs2012,相比较vs2010以及之前的vs为更高版本,致使msvc不兼容!


               解决上述问题之后,所有模块都编译通过,此时可以开始添加自己的东西了。Enjoy!


三、移动或复制源码后不可编译的解决方法


       有时移动或复制源程序文件夹后,会出现不可编译的情况,解决方案如下

       

    在项目的属性——通用属性——把引用重新添加一遍

 

    注意原来有引用的添加,没有的不要多添加。事实上只有opensees 、 openseestk和quickmain需要。










http://blog.sciencenet.cn/blog-1850230-830218.html


下一篇:在OpenSees下添加新材料的步骤

    本站是提供个人知识管理的网络存储空间,所有内容均由用户发布,不代表本站观点。请注意甄别内容中的联系方式、诱导购买等信息,谨防诈骗。如发现有害或侵权内容,请点击一键举报。
    转藏 分享 献花(0

    0条评论

    发表

    请遵守用户 评论公约

    类似文章 更多