103 lines
4.8 KiB
Plaintext
103 lines
4.8 KiB
Plaintext
"Higher level section"_Build.html - "LAMMPS WWW Site"_lws - "LAMMPS
|
|
Documentation"_ld - "LAMMPS Commands"_lc :c
|
|
|
|
:link(lws,http://lammps.sandia.gov)
|
|
:link(ld,Manual.html)
|
|
:link(lc,Commands_all.html)
|
|
|
|
:line
|
|
|
|
Notes for building LAMMPS on Windows :h3
|
|
|
|
"General remarks"_#generic
|
|
"Running Linux on Windows"_#linux
|
|
"Using GNU GCC ported to Windows"_#gnu
|
|
"Using a cross-compiler"_#cross :ul
|
|
|
|
:line
|
|
|
|
General remarks :h4,link(generic)
|
|
|
|
LAMMPS is developed and tested primarily on Linux machines. The vast
|
|
majority of HPC clusters and supercomputers today runs on Linux as well.
|
|
Thus portability to other platforms is desired, but not always achieved.
|
|
The LAMMPS developers strongly rely on LAMMPS users giving feedback and
|
|
providing assistance in resolving portability issues. This particularly
|
|
true for compiling LAMMPS on Windows, since this platform has significant
|
|
differences with some low-level functionality.
|
|
|
|
|
|
Running Linux on Windows :h4,link(linux)
|
|
|
|
So before trying to build LAMMPS on Windows, please consider if using
|
|
the pre-compiled Windows binary packages are sufficient for your needs
|
|
(as an aside, those packages themselves are build on a Linux machine
|
|
using cross-compilers). If it is necessary for your to compile LAMMPS
|
|
on a Windows machine (e.g. because it is your main desktop), please also
|
|
consider using a virtual machine software and run a Linux virtual machine,
|
|
or - if have a recently updated Windows 10 installation - consider using
|
|
the Windows subsystem for Linux, which allows to run a bash shell from
|
|
Ubuntu and from there on, you can pretty much use that shell like you
|
|
are running on an Ubuntu Linux machine (e.g. installing software via
|
|
apt-get). For more details on that, please see "this tutorial"_Howto_bash.html
|
|
|
|
|
|
Using GNU GCC ported to Windows :h4,link(gnu)
|
|
|
|
One option for compiling LAMMPS on Windows natively, that has been known
|
|
to work in the past is to install a bash shell, unix shell utilities,
|
|
perl, GNU make, and a GNU compiler ported to Windows. The Cygwin package
|
|
provides a unix/linux interface to low-level Windows functions, so LAMMPS
|
|
can be compiled on Windows. The necessary (minor) modifications to LAMMPS
|
|
are included, but may not always up-to-date for recently added functionality
|
|
and the corresponding new code. A machine makefile for using cygwin for
|
|
the old build system is provided. Using CMake for this mode of compilation
|
|
is untested and not likely to work.
|
|
|
|
When compiling for Windows do [not] set the -DLAMMPS_MEMALIGN define
|
|
in the LMP_INC makefile variable and add -lwsock32 -lpsapi to the linker
|
|
flags in LIB makefile variable. Try adding -static-libgcc or -static or
|
|
both to the linker flags when your resulting LAMMPS Windows executable
|
|
complains about missing .dll files. The CMake configuration should set
|
|
this up automatically, but is untested.
|
|
|
|
In case of problems, you are recommended to contact somebody with
|
|
experience in using cygwin. If you do come across portability problems
|
|
requiring changes to the LAMMPS source code, or figure out corrections
|
|
yourself, please report them on the lammps-users mailing list, or file
|
|
them as an issue or pull request on the LAMMPS GitHub project.
|
|
|
|
|
|
Using a cross-compiler :h4,link(cross)
|
|
|
|
If you need to provide custom LAMMPS binaries for Windows, but do not
|
|
need to do the compilation on Windows, please consider using a Linux
|
|
to Windows cross-compiler. This is how currently the Windows binary
|
|
packages are created by the LAMMPS developers. Because of that, this is
|
|
probably the currently best tested and supported way to build LAMMPS
|
|
executables for Windows. There are makefiles provided for the
|
|
traditional build system, but CMake has also been successfully tested
|
|
using the mingw32-cmake and mingw64-cmake wrappers that are bundled
|
|
with the cross-compiler environment on Fedora machines. A CMake preset
|
|
selecting all packages compatible with this cross-compilation build
|
|
is provided. You likely need to disable the GPU package unless you
|
|
download and install the contents of the pre-compiled "OpenCL ICD loader
|
|
library"_https://download.lammps.org/thirdparty/opencl-win-devel.tar.gz
|
|
into your MinGW64 cross-compiler environment. The cross-compilation
|
|
currently will only produce non-MPI serial binaries.
|
|
|
|
Please keep in mind, though, that this only applies to compiling LAMMPS.
|
|
Whether the resulting binaries do work correctly is no tested by the
|
|
LAMMPS developers. We instead rely on the feedback of the users
|
|
of these pre-compiled LAMMPS packages for Windows. We will try to resolve
|
|
issues to the best of our abilities if we become aware of them. However
|
|
this is subject to time constraints and focus on HPC platforms.
|
|
|
|
|
|
Native Visual C++ support :h4,link(native)
|
|
|
|
Support for the Visual C++ compilers is currently not available. The
|
|
CMake build system is capable of creating suitable a Visual Studio
|
|
style build environment, but the LAMMPS code itself is not fully ported
|
|
to support Visual C++. Volunteers to take on this task are welcome.
|