mirror of
https://github.com/JayDDee/cpuminer-opt.git
synced 2025-09-17 23:44:27 +00:00
Updated Compiling from source (markdown)
@@ -86,7 +86,8 @@ N is the number of threads for the compiler to use.
|
||||
Windows compilation using Visual Studio is not supported. Mingw64 is used on a Linux
|
||||
system (bare metal or virtual machine) to cross-compile cpuminer-opt binaries package
|
||||
for Windows. That procedure follows this simpler one. Minimal knowledge of the Unix file
|
||||
system and bash shell are required.
|
||||
system and bash shell are required. Some steps in common with building for Linux may not be
|
||||
explained in the same detail here, refer to the Linux procedure for more details details.
|
||||
|
||||
## Building for Windows, the easy way
|
||||
|
||||
@@ -165,7 +166,7 @@ Refer to Linux compile instructions and install required packages.
|
||||
|
||||
Additionally, install mingw-w64.
|
||||
|
||||
`sudo apt-get install mingw-w64 libz-mingw-w64-dev`
|
||||
`$ sudo apt-get install mingw-w64 libz-mingw-w64-dev`
|
||||
|
||||
|
||||
#### Create a local library
|
||||
@@ -202,23 +203,23 @@ CPU threads you want to use.
|
||||
|
||||
openssl:
|
||||
|
||||
`./Configure mingw64 shared --cross-compile-prefix=x86_64-w64-mingw32-`
|
||||
`$ ./Configure mingw64 shared --cross-compile-prefix=x86_64-w64-mingw32-`
|
||||
|
||||
`make`
|
||||
`$ make`
|
||||
|
||||
Make may fail with an ld error, just ensure libcrypto-1_1-x64.dll is created.
|
||||
|
||||
curl:
|
||||
|
||||
`./configure --with-winssl --with-winidn --host=x86_64-w64-mingw32`
|
||||
`$ ./configure --with-winssl --with-winidn --host=x86_64-w64-mingw32`
|
||||
|
||||
`make`
|
||||
`$ make`
|
||||
|
||||
gmp:
|
||||
|
||||
`./configure --host=x86_64-w64-mingw32`
|
||||
`$ ./configure --host=x86_64-w64-mingw32`
|
||||
|
||||
`make`
|
||||
`$ make`
|
||||
|
||||
#### Tweak the environment.
|
||||
|
||||
@@ -228,15 +229,15 @@ This step is required everytime you login or the commands can be added to
|
||||
Define some local variables to point to local library.
|
||||
|
||||
|
||||
`export LOCAL_LIB="$HOME/usr/lib"`
|
||||
`$ export LOCAL_LIB="$HOME/usr/lib"`
|
||||
|
||||
`export LDFLAGS="-L$LOCAL_LIB/curl/lib/.libs -L$LOCAL_LIB/gmp/.libs -L$LOCAL_LIB/openssl"`
|
||||
`$ export LDFLAGS="-L$LOCAL_LIB/curl/lib/.libs -L$LOCAL_LIB/gmp/.libs -L$LOCAL_LIB/openssl"`
|
||||
|
||||
`export CONFIGURE_ARGS="--with-curl=$LOCAL_LIB/curl --with-crypto=$LOCAL_LIB/openssl --host=x86_64-w64-mingw32"`
|
||||
`$ export CONFIGURE_ARGS="--with-curl=$LOCAL_LIB/curl --with-crypto=$LOCAL_LIB/openssl --host=x86_64-w64-mingw32"`
|
||||
|
||||
Adjust for gcc version:
|
||||
|
||||
`export GCC_MINGW_LIB="/usr/lib/gcc/x86_64-w64-mingw32/9.3-win32"`
|
||||
`$ export GCC_MINGW_LIB="/usr/lib/gcc/x86_64-w64-mingw32/9.3-win32"`
|
||||
|
||||
|
||||
Create a release directory and copy some dll files previously built.
|
||||
@@ -244,19 +245,19 @@ This can be done outside of cpuminer-opt and only needs to be done once.
|
||||
If the release directory is in cpuminer-opt directory it needs to be
|
||||
recreated every time a source package is decompressed.
|
||||
|
||||
`mkdir release`
|
||||
`$ mkdir release`
|
||||
|
||||
`cp /usr/x86_64-w64-mingw32/lib/zlib1.dll release/`
|
||||
`$ cp /usr/x86_64-w64-mingw32/lib/zlib1.dll release/`
|
||||
|
||||
`cp /usr/x86_64-w64-mingw32/lib/libwinpthread-1.dll release/`
|
||||
`$ cp /usr/x86_64-w64-mingw32/lib/libwinpthread-1.dll release/`
|
||||
|
||||
`cp $GCC_MINGW_LIB/libstdc++-6.dll release/`
|
||||
`$ cp $GCC_MINGW_LIB/libstdc++-6.dll release/`
|
||||
|
||||
`cp $GCC_MINGW_LIB/libgcc_s_seh-1.dll release/`
|
||||
`$ cp $GCC_MINGW_LIB/libgcc_s_seh-1.dll release/`
|
||||
|
||||
`cp $LOCAL_LIB/openssl/libcrypto-1_1-x64.dll release/`
|
||||
`$ cp $LOCAL_LIB/openssl/libcrypto-1_1-x64.dll release/`
|
||||
|
||||
`cp $LOCAL_LIB/curl/lib/.libs/libcurl-4.dll release/`
|
||||
`$ cp $LOCAL_LIB/curl/lib/.libs/libcurl-4.dll release/`
|
||||
|
||||
|
||||
#### Download cpuminer-opt
|
||||
@@ -276,24 +277,24 @@ Decompress and change to the cpuminer-opt directory.
|
||||
|
||||
Create a link to the locally compiled version of gmp.h
|
||||
|
||||
`ln -s $LOCAL_LIB/gmp-version/gmp.h ./gmp.h`
|
||||
`$ ln -s $LOCAL_LIB/gmp-version/gmp.h ./gmp.h`
|
||||
|
||||
`./autogen.sh`
|
||||
`$ ./autogen.sh`
|
||||
|
||||
Configure the compiler for the CPU architecture of the host machine:
|
||||
|
||||
`CFLAGS="-O3 -march=native -Wall" ./configure $CONFIGURE_ARGS`
|
||||
`$ CFLAGS="-O3 -march=native -Wall" ./configure $CONFIGURE_ARGS`
|
||||
|
||||
or cross compile for a specific CPU architecture:
|
||||
|
||||
`CFLAGS="-O3 -march=znver1 -Wall" ./configure $CONFIGURE_ARGS`
|
||||
`$ CFLAGS="-O3 -march=znver1 -Wall" ./configure $CONFIGURE_ARGS`
|
||||
|
||||
This will compile for AMD Ryzen.
|
||||
|
||||
You can compile more generically for a set of specific CPU features
|
||||
if you know what features you want:
|
||||
|
||||
`CFLAGS="-O3 -maes -msse4.2 -Wall" ./configure $CONFIGURE_ARGS`
|
||||
`$ CFLAGS="-O3 -maes -msse4.2 -Wall" ./configure $CONFIGURE_ARGS`
|
||||
|
||||
This will compile for an older CPU that does not have AVX.
|
||||
|
||||
@@ -306,7 +307,7 @@ can enable the CPU Groups feature by adding the following to CFLAGS:
|
||||
|
||||
Once you have run configure successfully run the compiler with n CPU threads:
|
||||
|
||||
`make -j n`
|
||||
`$ make -j n`
|
||||
|
||||
Copy cpuminer.exe to the release directory, compress and copy the release
|
||||
directory to a Windows system and run cpuminer.exe from the command line.
|
||||
@@ -316,7 +317,7 @@ Run cpuminer
|
||||
In a command windows change directories to the unzipped release folder.
|
||||
to get a list of all options:
|
||||
|
||||
cpuminer.exe --help
|
||||
$ cpuminer.exe --help
|
||||
|
||||
Command options are specific to where you mine. Refer to the pool's
|
||||
instructions on how to set them.
|
||||
|
||||
Reference in New Issue
Block a user