我安装了VS 2015 Professional。我安装了最新的HYPRE,来自Lawrence Livermore website。然后我使用CMake配置它并继续构建,我开始得到BLAS(dnrm2.c
)构建错误:
2> dnrm2.c
2> 1>
C:\Program Files (x86)\Windows Kits\10\Include\10.0.10240.0\ucrt\math.h(454): error C2059: syntax error: '('
触发dnrm2.c
错误的代码行是:
#include "math.h"
指向文件:
c:\Program Files (x86)\Windows Kits\10\Include\10.0.10240.0\ucrt\math.h
我查找了这个错误并找到了一些建议,比如this,将include更改为:
#include <cmath>
并编辑HYPRE项目设置:Configuration > C/C++ > Advanced > Compile As
至Compile As C++ (/TP)
我做了,但我仍然看到同样的错误,因为显然math.h
的{{1}}包含了相同的标题路径:
cmath
我甚至尝试重新安装VS 2015而没有任何运气(相同的错误)。感谢关于这里发生了什么的任何想法,以及如何解决这个问题。我想我可以在VS 2015中尝试一个极简主义的例子,其中包括math.h并报告,如果这有帮助的话。
修改 我的极简主义例子:
#else /* _STD_USING */
#include <math.h>
#endif /* _STD_USING */
似乎正在建设中。我试图以与C编译相同的方式设置项目(或C ++,没关系)。但这并不能帮助我。
答案 0 :(得分:0)
好的,这里的问题是HYPRE来源看起来像。在包含f2c.h
:
math.h
文件中
//#undef abs
//#define abs(x) ((x) >= 0 ? (x) : -(x))
//#endif
当我评论它时(因为这已在标准中定义),然后它超过了构建错误。当然我遇到其他构建错误。我试图单独解决这些问题。
编辑:它并不那么简单,因为他们(HYPRE)实际上依赖于他们自己对abs
的定义。所以我撤消了上面的内容并更改了一些包含的顺序,以便undef
实际上有意义。无论哪种方式,这都是HYPRE源代码问题。
答案 1 :(得分:0)
如果您在VS2015上成功编译了HYPRE,您能否将VS2015程序发送给我! 我的专业是地球物理学建模和反演。 我的电子邮件是schoolhui@hotmail.com 非常感谢你!
答案 2 :(得分:0)
我刚评论过
c:\Program Files (x86)\Windows Kits\10\Include\10.0.10240.0\ucrt\math.h
在
<?xml version="1.0" encoding="utf-8"?>
<android.support.v4.widget.DrawerLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:id="@+id/drawer_layout"
android:layout_width="match_parent"
android:layout_height="match_parent">
<!-- The main content view -->
<LinearLayout
android:id="@+id/llContent"
android:layout_width="match_parent"
android:layout_height="match_parent">
<FrameLayout
android:id="@+id/content_frame"
android:layout_width="match_parent"
android:layout_height="match_parent" />
</LinearLayout>
<!-- The navigation drawer -->
<!-- Menu items--->
<android.support.design.widget.NavigationView
android:id="@+id/navigation_view"
android:layout_width="wrap_content"
android:layout_height="match_parent"
android:layout_gravity="right"
android:background="@drawable/background_drawer"
app:headerLayout="@layout/nav_header"
app:itemIconTint="@color/colorPrimary"
app:menu="@menu/menu_navigation" />
</android.support.v4.widget.DrawerLayout>
然后HYPRE成功编译!
然后,我已经取消注释&#34; abs&#34;。