1. You need cmake installed in your computer.
2. You need msys installed in your computer.
3. Of course, visual studio also. The free express edition is OK.
4. You need BLAS and LAPACK compiler in you computer. I choose clapack beacuse it need no Fortran compiler which could be compiler by express edition of visual studio.
5. Optional: MPI ( MPICH2 or MS-MPI ) for parallel computation.
And, HDF5, MUMPS、UMFPACK etc
6. Download Trilinos and uncompress it.
7. Make a new dir in your Trilinos home, e.g. &(TRILINOS_HOME)\build
8. Write down a shell script in this new folder like below
#!/bin/sh
EXTRA_ARGS=&@
rm -r CMakeCache.txt CMakeFiles/
cmake \
-G "Visual Studio 11 Win64" \
-D Trilinos_ENABLE_TESTS:BOOL=ON \
-D TPL_ENABLE_MPI:BOOL=ON \
-D Trilinos_ENABLE_ALL_OPTIONAL_PACKAGES:BOOL=OFF \
-D Trilinos_ENABLE_Epetra:BOOL=ON \
-D Trilinos_ENABLE_EpetraExt:BOOL=ON \
-D Trilinos_ENABLE_AztecOO:BOOL=ON \
-D Trilinos_ENABLE_Amesos:BOOL=ON \
-D Trilinos_ENABLE_Belos:BOOL=ON \
-D Trilinos_ENABLE_Ifpack:BOOL=ON \
-D Trilinos_ENABLE_FEI:BOOL=ON \
-D Trilinos_ENABLE_ML:BOOL=ON \
-D Trilinos_ENABLE_Stratimikos:BOOL=ON \
-D Trilinos_ENABLE_Fortran:BOOL=OFF \
-D TPL_ENABLE_BLAS:BOOL=ON \
-D TPL_ENABLE_LAPACK:BOOL=ON \
$EXTRA_ARGS \
${TRILINOS_HOME}
9. Just run it in msys, it will generate files neccesary for VS compiler.
10. Compile.
Compiler errors
1. Return type error in Teuchos_Array.hpp
2. std::insert not defined error in Teucho_array.hpp, Ifpack_ConfigDefs.hpp, MLAPI_MultiVector.h.
Just include <funtional> to resolve it.
3. Add the following line into file EpetraExt_ConfigDefs.h if you include both HDF5 and MPI. Otheriwise errors of H5Pset_fapl_mpio etc not defined exist.
#ifndef H5_HAVE_PARALLEL
#define H5_HAVE_PARALLEL
#endif
4. There exists many error in packages like anasazi, zoltan that is hard to resolve!
cygwin下unable to remap的对处方法
有关于fork()或dll加载的错误, 可通过执行rebaseall消除.过程如下(http://cygwin.wikia.com/wiki/Rebaseall)
1. 关闭所有cygwin程序
2. 进入cmd
3. 进入ash
4. 执行rebaseall
rebaseall似乎修正所有/bin/下dll的基地址. 对自装程序,可如
$ /bin/rebase -s -v /usr/local/lib/.../*.dll
用-s指定文件夹
1. 关闭所有cygwin程序
2. 进入cmd
3. 进入ash
4. 执行rebaseall
rebaseall似乎修正所有/bin/下dll的基地址. 对自装程序,可如
$ /bin/rebase -s -v /usr/local/lib/.../*.dll
用-s指定文件夹
Bugs in CMakeLists.txt of VTK
1. 将Utilities/MaterialLibray/CMakeLists.txt 第78_84行
IF (NOT "${VTK_BINARY_DIR}" MATCHES "^${VTK_SOURCE_DIR}$")
# Ensure that the Source and Build dir are not same.
# In that case we don't need to copy anything.
COPY_FILES_TO_DIR(${MaterialLibrary_SOURCE_DIR}/Repository
${VTK_DEFAULT_SHADERS_DIR})
ENDIF (NOT "${VTK_BINARY_DIR}" MATCHES "^${VTK_SOURCE_DIR}$")
改写为
STRING(COMPARE EQUAL "${VTK_BINARY_DIR}" "${VTK_SOURCE_DIR}" INSOURCE)
IF (NOT INSOURCE)
# Ensure that the Source and Build dir are not same.
# In that case we don't need to copy anything.
COPY_FILES_TO_DIR(${MaterialLibrary_SOURCE_DIR}/Repository
${VTK_DEFAULT_SHADERS_DIR})
ENDIF (NOT INSOURCE
2. 将Testing/Intsall/CMakeLists.txt内
if("x${CMAKE_INSTALL_PREFIX}" MATCHES "^x${VTK_BINARY_DIR}/InstallTest$")
add_test(NAME Install
COMMAND ${CMAKE_COMMAND} -DCONFIGURATION=$<CONFIGURATION>
-DVTK_BINARY_DIR=${VTK_BINARY_DIR}
-P ${CMAKE_CURRENT_SOURCE_DIR}/InstallTest.cmake
)
endif()
改写为
STRING(COMPARE EQUAL "${CMAKE_INSTALL_PREFIX}" "${VTK_BINARY_DIR}/InstallTest" INSOURCE)
if(INSOURCE)
add_test(NAME Install
COMMAND ${CMAKE_COMMAND} -DCONFIGURATION=$<CONFIGURATION>
-DVTK_BINARY_DIR=${VTK_BINARY_DIR}
-P ${CMAKE_CURRENT_SOURCE_DIR}/InstallTest.cmake
)
endif()
IF (NOT "${VTK_BINARY_DIR}" MATCHES "^${VTK_SOURCE_DIR}$")
# Ensure that the Source and Build dir are not same.
# In that case we don't need to copy anything.
COPY_FILES_TO_DIR(${MaterialLibrary_SOURCE_DIR}/Repository
${VTK_DEFAULT_SHADERS_DIR})
ENDIF (NOT "${VTK_BINARY_DIR}" MATCHES "^${VTK_SOURCE_DIR}$")
改写为
STRING(COMPARE EQUAL "${VTK_BINARY_DIR}" "${VTK_SOURCE_DIR}" INSOURCE)
IF (NOT INSOURCE)
# Ensure that the Source and Build dir are not same.
# In that case we don't need to copy anything.
COPY_FILES_TO_DIR(${MaterialLibrary_SOURCE_DIR}/Repository
${VTK_DEFAULT_SHADERS_DIR})
ENDIF (NOT INSOURCE
2. 将Testing/Intsall/CMakeLists.txt内
if("x${CMAKE_INSTALL_PREFIX}" MATCHES "^x${VTK_BINARY_DIR}/InstallTest$")
add_test(NAME Install
COMMAND ${CMAKE_COMMAND} -DCONFIGURATION=$<CONFIGURATION>
-DVTK_BINARY_DIR=${VTK_BINARY_DIR}
-P ${CMAKE_CURRENT_SOURCE_DIR}/InstallTest.cmake
)
endif()
改写为
STRING(COMPARE EQUAL "${CMAKE_INSTALL_PREFIX}" "${VTK_BINARY_DIR}/InstallTest" INSOURCE)
if(INSOURCE)
add_test(NAME Install
COMMAND ${CMAKE_COMMAND} -DCONFIGURATION=$<CONFIGURATION>
-DVTK_BINARY_DIR=${VTK_BINARY_DIR}
-P ${CMAKE_CURRENT_SOURCE_DIR}/InstallTest.cmake
)
endif()
mingw64的安装方法
1. 下载ming-w64
http://sourceforge.net/projects/mingw-w64/files/
or x86_64-w64-mingw32-gcc-4.7.2-release-win32_rubenvb.7z from
http://en.sourceforge.jp/projects/sfnet_mingw-w64/
2. 下载MSYS - mingw-w64
http://sourceforge.net/apps/trac/mingw-w64/wiki/MSYS
3. 将ming-w64解压后移至/c/mingw64
将MSYS解压后移至/c/msys
4. 双击 C:\msys\msys.bat
5. 在/c/msys下执行sh /postinstall/pi.sh, 或直接修改/c/msys/fsta如下
c:/mingw64 mingw
此时在msys环境下执行mount可确认mount状态.
6. 修改windows PATH路径设定或修改/c/msys/profile如下
export PATH=".:/mingw/x86_64-w64-mingw32/lib:/mingw/libexec/gcc/x86_64-w64-mingw32/4.7.2:/mingw/x86_64-w64-mingw32/bin:/mingw/bin:/bin:$PATH"
7. 下载并安装其他工具,如gdb, make, pthread等
ming-w64中没有find,可转用mingw32 msys中的find.
8. 编译工具为/ming64/bin下的 x86_64-w64-mingw32-gcc. 直接用gcc出错.
http://sourceforge.net/projects/mingw-w64/files/
or x86_64-w64-mingw32-gcc-4.7.2-release-win32_rubenvb.7z from
http://en.sourceforge.jp/projects/sfnet_mingw-w64/
2. 下载MSYS - mingw-w64
http://sourceforge.net/apps/trac/mingw-w64/wiki/MSYS
3. 将ming-w64解压后移至/c/mingw64
将MSYS解压后移至/c/msys
4. 双击 C:\msys\msys.bat
5. 在/c/msys下执行sh /postinstall/pi.sh, 或直接修改/c/msys/fsta如下
c:/mingw64 mingw
此时在msys环境下执行mount可确认mount状态.
6. 修改windows PATH路径设定或修改/c/msys/profile如下
export PATH=".:/mingw/x86_64-w64-mingw32/lib:/mingw/libexec/gcc/x86_64-w64-mingw32/4.7.2:/mingw/x86_64-w64-mingw32/bin:/mingw/bin:/bin:$PATH"
7. 下载并安装其他工具,如gdb, make, pthread等
ming-w64中没有find,可转用mingw32 msys中的find.
8. 编译工具为/ming64/bin下的 x86_64-w64-mingw32-gcc. 直接用gcc出错.
cygwin下mpich的编译
1. ./configure
2. 将PATH设定为最小
C:\cygwin\usr\local\bin
C:\cygwin\bin
否则回出现如
sh 3220 child_info_fork::abort: can't commit memory for stack 0x28A000(90112), Win32 error
487
的错误.
3. make
4. make install
2. 将PATH设定为最小
C:\cygwin\usr\local\bin
C:\cygwin\bin
否则回出现如
sh 3220 child_info_fork::abort: can't commit memory for stack 0x28A000(90112), Win32 error
487
的错误.
3. make
4. make install
MPICH2在Window 7(64bit)上的安装
0. 下载mpich2
http://www.mcs.anl.gov/research/projects/mpich2/
1. 删除旧MPICH2
2. 以管理者权限执行command prompt
3. 键入"msiexec /i mpich2安装文件名.msi"
4. 选择对Everyone安装
5. 将$MPICHROOT\bin加入路径名列表
6. 顺次键入
smpd -install
mpiexec -remove
mpiexec -register
在此登陆用户名和密码(必须和计算机中登陆的相同)
(上述步骤也可使用wmpiconfig)
7. 确认-键入
mpiexec -validate
须显示SUCCESS
键入
smpd -status
须显示'smpd running on $hostname$'
8. 进入$MPICHROOT\examples, 键入
'mpiexec -n 2 cpi'
确认并行计算
http://www.mcs.anl.gov/research/projects/mpich2/
1. 删除旧MPICH2
2. 以管理者权限执行command prompt
3. 键入"msiexec /i mpich2安装文件名.msi"
4. 选择对Everyone安装
5. 将$MPICHROOT\bin加入路径名列表
6. 顺次键入
smpd -install
mpiexec -remove
mpiexec -register
在此登陆用户名和密码(必须和计算机中登陆的相同)
(上述步骤也可使用wmpiconfig)
7. 确认-键入
mpiexec -validate
须显示SUCCESS
键入
smpd -status
须显示'smpd running on $hostname$'
8. 进入$MPICHROOT\examples, 键入
'mpiexec -n 2 cpi'
确认并行计算
远程管理程序设定的移转方法
Putty设定的保存和读出
1. 使用regedit将 HKEY_CURRENY_USER\Software\SimonTatham\PuTTY\Sessions内容export
reg export HKEY_CURRENT_USER\Software\SimonTatham\PuTTY putty.reg
2. 双击export出的reg文件即可恢复该设定。或键入
reg import putty.reg
WinSCP设定的保存和读出
1. 打开WinSCP->设定->环境设定->export输出WinSCP.ini文件
2. 将WinSCP.ini拷贝到WinSCP安装目录下
3. 左击WinSCP图标, 将该程序设定为管理者特权下可执行文件
For version>5.0:
In login page, Open tools->export/import settings
Microsoft Edges: Setting saved in
1. 使用regedit将 HKEY_CURRENY_USER\Software\SimonTatham\PuTTY\Sessions内容export
reg export HKEY_CURRENT_USER\Software\SimonTatham\PuTTY putty.reg
2. 双击export出的reg文件即可恢复该设定。或键入
reg import putty.reg
WinSCP设定的保存和读出
1. 打开WinSCP->设定->环境设定->export输出WinSCP.ini文件
2. 将WinSCP.ini拷贝到WinSCP安装目录下
3. 左击WinSCP图标, 将该程序设定为管理者特权下可执行文件
For version>5.0:
In login page, Open tools->export/import settings
Microsoft Edges: Setting saved in
%LocalAppData%\Packages\Microsoft.MicrosoftEdge_8wekyb3d8bbwe\AC\MicrosoftEdge\User\Default\Datastorejust copy this folder
订阅:
博文 (Atom)
VS Code下cmake, c++编译,调试环境的构成步骤
1 下载必须extension 按[Ctrl+Shift+X]打开extension窗口,选择安装"C/C++", "CMake", "CMake Tools" 2 在VSCode下打开作业目录 ...
-
学过连续体力学(包括固体力学,流体力学等)都知道应力张量是对称的(下面将说明它是有条件的)。 对于初学者, 这似乎有些难于理解, 如 http://forum.simwe.com/forum.php?mod=viewthread&tid=503234&hig...
-
1. 什么是体积锁死现象 图1 平面应变模型 在图1所示的又两个三角形单元组成的平面应变问题中,如果变形体材料是不可压缩的,那么我们不管在加载点施加多大的力,从有限元法计算得到的所有节点的所有位移都为零。因为任意位移都会导致 两个三角形中的一个的体积...
-
假设时间步i中的所有物理量X i 已知, 如果时间步i+1中的所有物理量X i+1 可以表为X i 的显函数 (1) X i+1 = F(X i ) (注;本文以下标i,i+1等表示时间步) 则该物理量X可以显式计算。而如果 (2) ...