blt4linux / blt4l

PAYDAY 2 SteamOS/Linux LUA loader.
Other
57 stars 14 forks source link

How to compile BLT4L 2 Pre 1 with mod_overrides support #64

Closed Kazenin closed 7 years ago

Kazenin commented 7 years ago

Please, help

I use Fedora 25 and I would like to test this feature. Thanks a lot.

RomanHargrave commented 7 years ago

For Fedora, you'll need to install libcxx and clang.

Then you should be able to invoke cmake like this: cmake -DUSE_LIBCXX path/to/cmakelists, or run the installer and opt in.

Kazenin commented 7 years ago

Hello,`

Thanks for help. I tried use install.sh and follow the output below:

$ ./install.sh 
Looking for CMakeLists.txt: Found
Note: No package list for Fedora
Looking for PAYDAY 2 (payday2_release) in /jogos/games/steamapps/common: /jogos/games/steamapps/common/PAYDAY 2/payday2_release
Looking for Steam configs: 1 found
Would you like to build against libc++? Clang and libc++ must be installed already. [Y/n]: Y
cmake -DUSE_LIBCXX=ON '/home/greyson/Downloads/PAYDAY2/BLT/com_mod_overrides/blt4l-2.0-pre1/CMakeLists.txt' -DCMAKE_BUILD_TYPE=Release -DCMAKE_CXX_FLAGS='-march=native -mtune=native' -DCMAKE_C_FLAGS='-march=native -mtune=native'
Looking for installer_build: Found
Running CMake: OK
Building BLT: Failed
Please see the Make log at /home/greyson/Downloads/PAYDAY2/BLT/com_mod_overrides/blt4l-2.0-pre1/installer_build/installer_make.log

installer_make.log content:

Using Clang/LibC++
-- The C compiler identification is GNU 6.3.1
-- The CXX compiler identification is Clang 3.9.1
-- Check for working C compiler: /usr/bin/cc
-- Check for working C compiler: /usr/bin/cc -- works
-- Detecting C compiler ABI info
-- Detecting C compiler ABI info - done
-- Detecting C compile features
-- Detecting C compile features - done
-- Check for working CXX compiler: /usr/bin/clang++
-- Check for working CXX compiler: /usr/bin/clang++ -- works
-- Detecting CXX compiler ABI info
-- Detecting CXX compiler ABI info - done
-- Detecting CXX compile features
-- Detecting CXX compile features - done
-- Found CURL: /usr/lib64/libcurl.so (found version "7.51.0") 
-- Found OpenSSL: /usr/lib64/libssl.so (found version "1.0.2k") 
-- Found ZLIB: /usr/lib64/libz.so (found version "1.2.8") 
-- Configuring done
-- Generating done
-- Build files have been written to: /home/greyson/Downloads/PAYDAY2/BLT/com_mod_overrides/blt4l-2.0-pre1/installer_build
RomanHargrave commented 7 years ago

It looks like make didn't even run....

Could you go in to installer_build and run make?

RomanHargrave commented 7 years ago

wait, did you download the zip file from github?

Kazenin commented 7 years ago

Yes, I downloaded from github. The zip file

RomanHargrave commented 7 years ago

Can you please git clone --recursive http://github.com/blt4linux/blt4l to get BLT? GitHub has not been too kind to submodules WRT zip downloads.

Kazenin commented 7 years ago

Nice. I did and as result I had:

$ git clone --recursive http://github.com/blt4linux/blt4l
Cloning into 'blt4l'...
remote: Counting objects: 626, done.
remote: Compressing objects: 100% (34/34), done.
remote: Total 626 (delta 19), reused 33 (delta 11), pack-reused 579
Receiving objects: 100% (626/626), 333.89 KiB | 243.00 KiB/s, done.
Resolving deltas: 100% (333/333), done.
Checking connectivity... done.
Submodule 'lua/Payday-2-BLT-Lua' (https://github.com/Luffyyy/Payday-2-BLT-Lua) registered for path 'lua/Payday-2-BLT-Lua'
Submodule 'subhook' (https://github.com/Zeex/subhook.git) registered for path 'subhook'
Cloning into '/home/greyson/Downloads/PAYDAY2/BLT/com_mod_overrides/blt4l/lua/Payday-2-BLT-Lua'...
Cloning into '/home/greyson/Downloads/PAYDAY2/BLT/com_mod_overrides/blt4l/subhook'...
Submodule path 'lua/Payday-2-BLT-Lua': checked out '2a8f8a0767817bbe12fa7f0244718a308db40a34'
Submodule path 'subhook': checked out '9551217ba4fadbf729e810ab94b4ab7f67b4cfbe'

$ ./install.sh 
Updating submodules: OK
Looking for CMakeLists.txt: Found
Note: No package list for Fedora
Looking for PAYDAY 2 (payday2_release) in /jogos/games/steamapps/common: /jogos/games/steamapps/common/PAYDAY 2/payday2_release
Looking for Steam configs: 1 found
Would you like to build against libc++? Clang and libc++ must be installed already. [Y/n]: Y
cmake -DUSE_LIBCXX=ON '/home/greyson/Downloads/PAYDAY2/BLT/com_mod_overrides/blt4l/CMakeLists.txt' -DCMAKE_BUILD_TYPE=Release -DCMAKE_CXX_FLAGS='-march=native -mtune=native' -DCMAKE_C_FLAGS='-march=native -mtune=native'
Looking for installer_build: Missing
Running CMake: OK
Building BLT: Failed
Please see the Make log at /home/greyson/Downloads/PAYDAY2/BLT/com_mod_overrides/blt4l/installer_build/installer_make.log

$ cd installer_build
$ make
`[  8%] Building CXX object CMakeFiles/blt_loader.dir/src/event.cc.o
In file included from /home/greyson/Downloads/PAYDAY2/BLT/com_mod_overrides/blt4l/src/event.cc:1:
/home/greyson/Downloads/PAYDAY2/BLT/com_mod_overrides/blt4l/include/blt/event.hh:3:10: fatal error: 
      'deque' file not found
#include <deque>
         ^
1 error generated.
CMakeFiles/blt_loader.dir/build.make:86: recipe for target 'CMakeFiles/blt_loader.dir/src/event.cc.o' failed
make[2]: *** [CMakeFiles/blt_loader.dir/src/event.cc.o] Error 1
CMakeFiles/Makefile2:67: recipe for target 'CMakeFiles/blt_loader.dir/all' failed
make[1]: *** [CMakeFiles/blt_loader.dir/all] Error 2
Makefile:83: recipe for target 'all' failed
make: *** [all] Error 2
RomanHargrave commented 7 years ago

Use ``` for multiline code

RomanHargrave commented 7 years ago

This is somewhat impressive. You're missing a core C++ header, specifically the one for deque.

Kazenin commented 7 years ago

Thanks. Do You know what package?

RomanHargrave commented 7 years ago

That's the thing. It should already exist... I'm going to have to set up a fedora chroot to test this (which i've been meaning to do).

It's more likely the case that the compiler is having trouble locating it. Just to be sure, could you confirm libcxx is installed?

Kazenin commented 7 years ago

$ sudo dnf install libcxx


Última verificação de data de vencimento de metadados: 1:18:30 atrás em Sat Jun 24 16:23:08 2017.
Package libcxx-3.9.1-1.fc25.x86_64 already installed, ignoring.
Package libcxx-3.9.1-1.fc25.i686 already installed, ignoring.
Dependencies resolved.
Nothing to do.
Finished!
RomanHargrave commented 7 years ago

Will you please try dnf groupinstall "Development Tools" and then try building?

Kazenin commented 7 years ago

$ sudo dnf groupinstall "Development Tools"


Última verificação de data de vencimento de metadados: 1:45:09 atrás em Sat Jun 24 16:23:08 2017.
The 'Development Tools' group is already installed, skipping
Dependencies resolved.
Nothing to do.
Finished!
Kazenin commented 7 years ago

What is path/to/cmakelists default?

RomanHargrave commented 7 years ago

.., or whatever the path to the CMakeLists.txt file for BLT is

Kazenin commented 7 years ago

$ cmake -DUSE_LIBCXX ..


Should be: VAR:type=value
CMake Error: No cmake script provided.
CMake Error: Problem processing arguments. Aborting.
RomanHargrave commented 7 years ago

-DUSE_LIBCXX=ON

Kazenin commented 7 years ago

$ mkdir build $ cd build $ cmake -DUSE_LIBCXX=ON ..

Using Clang/LibC++
-- The C compiler identification is GNU 6.3.1
-- The CXX compiler identification is Clang 3.9.1
-- Check for working C compiler: /usr/bin/cc
-- Check for working C compiler: /usr/bin/cc -- works
-- Detecting C compiler ABI info
-- Detecting C compiler ABI info - done
-- Detecting C compile features
-- Detecting C compile features - done
-- Check for working CXX compiler: /usr/bin/clang++
-- Check for working CXX compiler: /usr/bin/clang++ -- works
-- Detecting CXX compiler ABI info
-- Detecting CXX compiler ABI info - done
-- Detecting CXX compile features
-- Detecting CXX compile features - done
-- Found CURL: /usr/lib64/libcurl.so (found version "7.51.0") 
-- Found OpenSSL: /usr/lib64/libssl.so (found version "1.0.2k") 
-- Found ZLIB: /usr/lib64/libz.so (found version "1.2.8") 
-- Configuring done
-- Generating done
-- Build files have been written to: /home/greyson/Downloads/PAYDAY2/BLT/com_mod_overrides/blt4l/build

$ make

Scanning dependencies of target blt_loader
[  8%] Building C object CMakeFiles/blt_loader.dir/subhook/subhook.c.o
[ 16%] Building CXX object CMakeFiles/blt_loader.dir/src/event.cc.o
In file included from /home/greyson/Downloads/PAYDAY2/BLT/com_mod_overrides/blt4l/src/event.cc:1:
/home/greyson/Downloads/PAYDAY2/BLT/com_mod_overrides/blt4l/include/blt/event.hh:3:10: fatal error: 
      'deque' file not found
#include <deque>
         ^
1 error generated.
CMakeFiles/blt_loader.dir/build.make:86: recipe for target 'CMakeFiles/blt_loader.dir/src/event.cc.o' failed
make[2]: *** [CMakeFiles/blt_loader.dir/src/event.cc.o] Error 1
CMakeFiles/Makefile2:67: recipe for target 'CMakeFiles/blt_loader.dir/all' failed
make[1]: *** [CMakeFiles/blt_loader.dir/all] Error 2
Makefile:83: recipe for target 'all' failed
make: *** [all] Error 2
RomanHargrave commented 7 years ago

Will you run mlocate deque | grep -P 'deque(\.h)?$'

Kazenin commented 7 years ago

mlocate have not a binary, I guess. So, I used locate

$ locate deque | grep -P 'deque(.h)?$'

/usr/include/boost/fusion/container/deque
/usr/include/boost/tr1/tr1/deque
/usr/include/c++/6.3.1/deque
/usr/include/c++/6.3.1/bits/stl_deque.h
/usr/include/c++/6.3.1/debug/deque
/usr/include/c++/6.3.1/experimental/deque
/usr/include/c++/6.3.1/profile/deque
RomanHargrave commented 7 years ago

my guess is that clang isn't finding the includes dir correctly.

at risk of causing more errors, will you run the following command in a fresh build directory?

cmake -DUSE_LIBCXX=ON .. -DCMAKE_CXX_FLAGS="-fPIC -std=c++11 -stdlib=libc++ -I/usr/include/c++/6.3.1"

Kazenin commented 7 years ago

$ cmake -DUSE_LIBCXX=ON .. -DCMAKE_CXX_FLAGS="-fPIC -std=c++11 -stdlib=libc++ -I/usr/include/c++/6.3.1"

Using Clang/LibC++
-- Configuring done
-- Generating done
-- Build files have been written to: /home/greyson/Downloads/PAYDAY2/BLT/com_mod_overrides/blt4l/build

$ make

[  8%] Building C object CMakeFiles/blt_loader.dir/subhook/subhook.c.o
[ 16%] Building CXX object CMakeFiles/blt_loader.dir/src/event.cc.o
In file included from /home/greyson/Downloads/PAYDAY2/BLT/com_mod_overrides/blt4l/src/event.cc:1:
In file included from /home/greyson/Downloads/PAYDAY2/BLT/com_mod_overrides/blt4l/include/blt/event.hh:3:
In file included from /usr/include/c++/6.3.1/deque:60:
/usr/include/c++/6.3.1/bits/stl_algobase.h:59:10: fatal error: 'bits/c++config.h' file not found
#include <bits/c++config.h>
         ^
1 error generated.
CMakeFiles/blt_loader.dir/build.make:86: recipe for target 'CMakeFiles/blt_loader.dir/src/event.cc.o' failed
make[2]: *** [CMakeFiles/blt_loader.dir/src/event.cc.o] Error 1
CMakeFiles/Makefile2:67: recipe for target 'CMakeFiles/blt_loader.dir/all' failed
make[1]: *** [CMakeFiles/blt_loader.dir/all] Error 2
Makefile:83: recipe for target 'all' failed
make: *** [all] Error 2
RomanHargrave commented 7 years ago

sorry, -DUSE_LIBCXX=ON

Kazenin commented 7 years ago

$ cmake -DUSE_LIBCXX=ON .. -DCMAKE_CXX_FLAGS="-fPIC -std=c++11 -stdlib=libc++ -I/usr /include/c++/6.3.1"

Using Clang/LibC++
-- Configuring done
-- Generating done
-- Build files have been written to: /home/greyson/Downloads/PAYDAY2/BLT/com_mod_overrides/blt4l/build

$ make

[  8%] Building C object CMakeFiles/blt_loader.dir/subhook/subhook.c.o
[ 16%] Building CXX object CMakeFiles/blt_loader.dir/src/event.cc.o
In file included from /home/greyson/Downloads/PAYDAY2/BLT/com_mod_overrides/blt4l/src/event.cc:1:
In file included from /home/greyson/Downloads/PAYDAY2/BLT/com_mod_overrides/blt4l/include/blt/event.hh:3:
In file included from /usr/include/c++/6.3.1/deque:60:
/usr/include/c++/6.3.1/bits/stl_algobase.h:59:10: fatal error: 'bits/c++config.h' file not found
#include <bits/c++config.h>
         ^
1 error generated.
CMakeFiles/blt_loader.dir/build.make:86: recipe for target 'CMakeFiles/blt_loader.dir/src/event.cc.o' failed
make[2]: *** [CMakeFiles/blt_loader.dir/src/event.cc.o] Error 1
CMakeFiles/Makefile2:67: recipe for target 'CMakeFiles/blt_loader.dir/all' failed
make[1]: *** [CMakeFiles/blt_loader.dir/all] Error 2
Makefile:83: recipe for target 'all' failed
make: *** [all] Error 2
RomanHargrave commented 7 years ago

You are missing a whole lot of stuff. I don't use RHEL so I don't know that packages to tell you to look for.

It's quite strange, since you should have all the requisites, so my guess is that there is either a bug with some packaging, or some files managed by packages have been inadvertently deleted by something.

I know there are other F25 users around, so you may want to wait for them to come around and give advice.

Kazenin commented 7 years ago

I will wait. If you would compile from fedora I will be glad too. The tarball to debian and ubuntu does not work here

RomanHargrave commented 7 years ago

Building fedora chroots is a nightmare, I'll probably have to end up looking at this in a vm, or at least creating a base install in a vm.

Kazenin commented 7 years ago

I installed Debian stretch but prebuild does not work. Do you have any idea ?

RomanHargrave commented 7 years ago

Can you run ldd on the prebuild and see if you can give more specific failure information

Kazenin commented 7 years ago

yes, lets go:

$ ldd libblt_loader.so

linux-vdso.so.1 (0x00007ffe607e6000)
    libdl.so.2 => /lib/x86_64-linux-gnu/libdl.so.2 (0x00007f4c91694000)
    libcrypto.so.1.0.2 => /usr/lib/x86_64-linux-gnu/libcrypto.so.1.0.2 (0x00007f4c91230000)
    libcurl.so.4 => /usr/lib/x86_64-linux-gnu/libcurl.so.4 (0x00007f4c90fb0000)
    libz.so.1 => /lib/x86_64-linux-gnu/libz.so.1 (0x00007f4c90d96000)
    libc++.so.1 => /usr/lib/x86_64-linux-gnu/libc++.so.1 (0x00007f4c90a90000)
    libm.so.6 => /lib/x86_64-linux-gnu/libm.so.6 (0x00007f4c9078a000)
    libgcc_s.so.1 => /lib/x86_64-linux-gnu/libgcc_s.so.1 (0x00007f4c90573000)
    libc.so.6 => /lib/x86_64-linux-gnu/libc.so.6 (0x00007f4c901d4000)
    /lib64/ld-linux-x86-64.so.2 (0x00005569b09c7000)
    libnghttp2.so.14 => /usr/lib/x86_64-linux-gnu/libnghttp2.so.14 (0x00007f4c8ffae000)
    libidn2.so.0 => /usr/lib/x86_64-linux-gnu/libidn2.so.0 (0x00007f4c8fd8c000)
    librtmp.so.1 => /usr/lib/x86_64-linux-gnu/librtmp.so.1 (0x00007f4c8fb6f000)
    libssh2.so.1 => /usr/lib/x86_64-linux-gnu/libssh2.so.1 (0x00007f4c8f941000)
    libpsl.so.5 => /usr/lib/x86_64-linux-gnu/libpsl.so.5 (0x00007f4c8f733000)
    libssl.so.1.0.2 => /usr/lib/x86_64-linux-gnu/libssl.so.1.0.2 (0x00007f4c8f4ca000)
    libgssapi_krb5.so.2 => /usr/lib/x86_64-linux-gnu/libgssapi_krb5.so.2 (0x00007f4c8f27f000)
    libkrb5.so.3 => /usr/lib/x86_64-linux-gnu/libkrb5.so.3 (0x00007f4c8efa5000)
    libk5crypto.so.3 => /usr/lib/x86_64-linux-gnu/libk5crypto.so.3 (0x00007f4c8ed72000)
    libcom_err.so.2 => /lib/x86_64-linux-gnu/libcom_err.so.2 (0x00007f4c8eb6c000)
    liblber-2.4.so.2 => /usr/lib/x86_64-linux-gnu/liblber-2.4.so.2 (0x00007f4c8e95d000)
    libldap_r-2.4.so.2 => /usr/lib/x86_64-linux-gnu/libldap_r-2.4.so.2 (0x00007f4c8e70c000)
    libpthread.so.0 => /lib/x86_64-linux-gnu/libpthread.so.0 (0x00007f4c8e4ef000)
    librt.so.1 => /lib/x86_64-linux-gnu/librt.so.1 (0x00007f4c8e2e7000)
    libunistring.so.0 => /usr/lib/x86_64-linux-gnu/libunistring.so.0 (0x00007f4c8dfce000)
    libgnutls.so.30 => /usr/lib/x86_64-linux-gnu/libgnutls.so.30 (0x00007f4c8dc35000)
    libhogweed.so.4 => /usr/lib/x86_64-linux-gnu/libhogweed.so.4 (0x00007f4c8da00000)
    libnettle.so.6 => /usr/lib/x86_64-linux-gnu/libnettle.so.6 (0x00007f4c8d7c9000)
    libgmp.so.10 => /usr/lib/x86_64-linux-gnu/libgmp.so.10 (0x00007f4c8d546000)
    libgcrypt.so.20 => /lib/x86_64-linux-gnu/libgcrypt.so.20 (0x00007f4c8d237000)
    libkrb5support.so.0 => /usr/lib/x86_64-linux-gnu/libkrb5support.so.0 (0x00007f4c8d02b000)
    libkeyutils.so.1 => /lib/x86_64-linux-gnu/libkeyutils.so.1 (0x00007f4c8ce25000)
    libresolv.so.2 => /lib/x86_64-linux-gnu/libresolv.so.2 (0x00007f4c8cc0e000)
    libsasl2.so.2 => /usr/lib/x86_64-linux-gnu/libsasl2.so.2 (0x00007f4c8c9f3000)
    libp11-kit.so.0 => /usr/lib/x86_64-linux-gnu/libp11-kit.so.0 (0x00007f4c8c78e000)
    libidn.so.11 => /lib/x86_64-linux-gnu/libidn.so.11 (0x00007f4c8c55a000)
    libtasn1.so.6 => /usr/lib/x86_64-linux-gnu/libtasn1.so.6 (0x00007f4c8c345000)
    libgpg-error.so.0 => /lib/x86_64-linux-gnu/libgpg-error.so.0 (0x00007f4c8c131000)
    libffi.so.6 => /usr/lib/x86_64-linux-gnu/libffi.so.6 (0x00007f4c8bf28000)
RomanHargrave commented 7 years ago

You need to install libc++. I'm on my phone right now, but I'll get you the package name in a minute.

---- On Sun, 25 Jun 2017 07:47:05 -0700 notifications@github.com wrote ----

yes, lets go:

$ ldd libblt_loader.so

linux-vdso.so.1 (0x00007ffe18f66000) libdl.so.2 => /lib/x86_64-linux-gnu/libdl.so.2 (0x00007f7582590000) libcrypto.so.1.0.2 => /usr/lib/x86_64-linux-gnu/libcrypto.so.1.0.2 (0x00007f758212c000) libcurl.so.4 => /usr/lib/x86_64-linux-gnu/libcurl.so.4 (0x00007f7581eac000) libz.so.1 => /lib/x86_64-linux-gnu/libz.so.1 (0x00007f7581c92000) libc++.so.1 => not found libm.so.6 => /lib/x86_64-linux-gnu/libm.so.6 (0x00007f758198c000) libgcc_s.so.1 => /lib/x86_64-linux-gnu/libgcc_s.so.1 (0x00007f7581775000) libc.so.6 => /lib/x86_64-linux-gnu/libc.so.6 (0x00007f75813d6000) /lib64/ld-linux-x86-64.so.2 (0x0000560c9125a000) libnghttp2.so.14 => /usr/lib/x86_64-linux-gnu/libnghttp2.so.14 (0x00007f75811b0000) libidn2.so.0 => /usr/lib/x86_64-linux-gnu/libidn2.so.0 (0x00007f7580f8e000) librtmp.so.1 => /usr/lib/x86_64-linux-gnu/librtmp.so.1 (0x00007f7580d71000) libssh2.so.1 => /usr/lib/x86_64-linux-gnu/libssh2.so.1 (0x00007f7580b43000) libpsl.so.5 => /usr/lib/x86_64-linux-gnu/libpsl.so.5 (0x00007f7580935000) libssl.so.1.0.2 => /usr/lib/x86_64-linux-gnu/libssl.so.1.0.2 (0x00007f75806cc000) libgssapi_krb5.so.2 => /usr/lib/x86_64-linux-gnu/libgssapi_krb5.so.2 (0x00007f7580481000) libkrb5.so.3 => /usr/lib/x86_64-linux-gnu/libkrb5.so.3 (0x00007f75801a7000) libk5crypto.so.3 => /usr/lib/x86_64-linux-gnu/libk5crypto.so.3 (0x00007f757ff74000) libcom_err.so.2 => /lib/x86_64-linux-gnu/libcom_err.so.2 (0x00007f757fd6e000) liblber-2.4.so.2 => /usr/lib/x86_64-linux-gnu/liblber-2.4.so.2 (0x00007f757fb5f000) libldap_r-2.4.so.2 => /usr/lib/x86_64-linux-gnu/libldap_r-2.4.so.2 (0x00007f757f90e000) libpthread.so.0 => /lib/x86_64-linux-gnu/libpthread.so.0 (0x00007f757f6f1000) libunistring.so.0 => /usr/lib/x86_64-linux-gnu/libunistring.so.0 (0x00007f757f3da000) libgnutls.so.30 => /usr/lib/x86_64-linux-gnu/libgnutls.so.30 (0x00007f757f03f000) libhogweed.so.4 => /usr/lib/x86_64-linux-gnu/libhogweed.so.4 (0x00007f757ee0a000) libnettle.so.6 => /usr/lib/x86_64-linux-gnu/libnettle.so.6 (0x00007f757ebd3000) libgmp.so.10 => /usr/lib/x86_64-linux-gnu/libgmp.so.10 (0x00007f757e950000) libgcrypt.so.20 => /lib/x86_64-linux-gnu/libgcrypt.so.20 (0x00007f757e641000) libkrb5support.so.0 => /usr/lib/x86_64-linux-gnu/libkrb5support.so.0 (0x00007f757e435000) libkeyutils.so.1 => /lib/x86_64-linux-gnu/libkeyutils.so.1 (0x00007f757e231000) libresolv.so.2 => /lib/x86_64-linux-gnu/libresolv.so.2 (0x00007f757e018000) libsasl2.so.2 => /usr/lib/x86_64-linux-gnu/libsasl2.so.2 (0x00007f757ddfd000) libp11-kit.so.0 => /usr/lib/x86_64-linux-gnu/libp11-kit.so.0 (0x00007f757db98000) libidn.so.11 => /lib/x86_64-linux-gnu/libidn.so.11 (0x00007f757d964000) libtasn1.so.6 => /usr/lib/x86_64-linux-gnu/libtasn1.so.6 (0x00007f757d751000) libgpg-error.so.0 => /lib/x86_64-linux-gnu/libgpg-error.so.0 (0x00007f757d53b000) — You are receiving this because you commented. Reply to this email directly, view it on GitHub, or mute the thread.

Kazenin commented 7 years ago

I installed the package already. libc++1 libc++-dev

RomanHargrave commented 7 years ago

Try building it then?

It may just be that I need to update some packages on my system, so I'm doing that at the moment.

Kazenin commented 7 years ago

I tried to use https://github.com/blt4linux/blt4l/releases/download/2.0-pre1/blt4l_2.0-pre1_Debian-stretch.tar.xz content.

Kazenin commented 7 years ago

I tried to compile. The output below:

Using Clang/LibC++
-- The C compiler identification is GNU 6.3.0
-- The CXX compiler identification is Clang 3.8.1
-- Check for working C compiler: /usr/bin/cc
-- Check for working C compiler: /usr/bin/cc -- works
-- Detecting C compiler ABI info
-- Detecting C compiler ABI info - done
-- Detecting C compile features
-- Detecting C compile features - done
-- Check for working CXX compiler: /usr/bin/clang++
-- Check for working CXX compiler: /usr/bin/clang++ -- broken
CMake Error at /usr/share/cmake-3.7/Modules/CMakeTestCXXCompiler.cmake:44 (message):
  The C++ compiler "/usr/bin/clang++" is not able to compile a simple test
  program.

  It fails with the following output:

   Change Dir: /home/greyson/Downloads/PAYDAY2/BLT/com_mod_overrides/blt4l/build/CMakeFiles/CMakeTmp

  Run Build Command:"/usr/bin/make" "cmTC_5e1bb/fast"

  /usr/bin/make -f CMakeFiles/cmTC_5e1bb.dir/build.make
  CMakeFiles/cmTC_5e1bb.dir/build

  make[1]: Entering directory
  '/home/greyson/Downloads/PAYDAY2/BLT/com_mod_overrides/blt4l/build/CMakeFiles/CMakeTmp'

  CMakeFiles/cmTC_5e1bb.dir/flags.make:6: *** missing separator.  Pare.

  make[1]: Leaving directory
  '/home/greyson/Downloads/PAYDAY2/BLT/com_mod_overrides/blt4l/build/CMakeFiles/CMakeTmp'

  Makefile:126: recipe for target 'cmTC_5e1bb/fast' failed

  make: *** [cmTC_5e1bb/fast] Error 2

  CMake will not be able to correctly generate this project.
Call Stack (most recent call first):
  CMakeLists.txt:13 (project)

-- Configuring incomplete, errors occurred!
See also "/home/greyson/Downloads/PAYDAY2/BLT/com_mod_overrides/blt4l/build/CMakeFiles/CMakeOutput.log".
See also "/home/greyson/Downloads/PAYDAY2/BLT/com_mod_overrides/blt4l/build/CMakeFiles/CMakeError.log".
Kazenin commented 7 years ago

It is compiled:

$ cmake -DUSE_LIBCXX=ON ..

Using Clang/LibC++
-- The C compiler identification is GNU 6.3.0
-- The CXX compiler identification is Clang 3.8.1
-- Check for working C compiler: /usr/bin/cc
-- Check for working C compiler: /usr/bin/cc -- works
-- Detecting C compiler ABI info
-- Detecting C compiler ABI info - done
-- Detecting C compile features
-- Detecting C compile features - done
-- Check for working CXX compiler: /usr/bin/clang++
-- Check for working CXX compiler: /usr/bin/clang++ -- works
-- Detecting CXX compiler ABI info
-- Detecting CXX compiler ABI info - done
-- Detecting CXX compile features
-- Detecting CXX compile features - done
-- Found CURL: /usr/lib/x86_64-linux-gnu/libcurl.so (found version "7.52.1") 
-- Found OpenSSL: /usr/lib/x86_64-linux-gnu/libssl.so;/usr/lib/x86_64-linux-gnu/libcrypto.so (found version "1.1.0f") 
-- Found ZLIB: /usr/lib/x86_64-linux-gnu/libz.so (found version "1.2.8") 
-- Configuring done
-- Generating done
-- Build files have been written to: /home/greyson/Downloads/PAYDAY2/BLT/com_mod_overrides/blt4l/build

$ make

Scanning dependencies of target blt_loader
[  7%] Building C object CMakeFiles/blt_loader.dir/subhook/subhook.c.o
[ 15%] Building CXX object CMakeFiles/blt_loader.dir/src/event.cc.o
[ 23%] Building CXX object CMakeFiles/blt_loader.dir/src/zip.cc.o
[ 30%] Building CXX object CMakeFiles/blt_loader.dir/src/fs.cc.o
[ 38%] Building CXX object CMakeFiles/blt_loader.dir/src/http.cc.o
[ 46%] Building CXX object CMakeFiles/blt_loader.dir/src/log.cc.o
[ 53%] Building CXX object CMakeFiles/blt_loader.dir/src/hook.cc.o
[ 61%] Building CXX object CMakeFiles/blt_loader.dir/src/lapi.cc.o
[ 69%] Building CXX object CMakeFiles/blt_loader.dir/src/lapi_http.cc.o
[ 76%] Building CXX object CMakeFiles/blt_loader.dir/src/lapi_version.cc.o
[ 84%] Building CXX object CMakeFiles/blt_loader.dir/src/lapi_systemfs.cc.o
[ 92%] Building CXX object CMakeFiles/blt_loader.dir/src/blt_main.cc.o
[100%] Linking CXX shared library libblt_loader.so
[100%] Built target blt_loader

I put the libblt_loader.so library in PAYDAY directory but the game did not open. I don`t know what is wrong now.

RomanHargrave commented 7 years ago

Will you upload your libblt_loader.so and send it to me?

Kazenin commented 7 years ago

Yes, here is the file: libblt_loader.so.zip

RomanHargrave commented 7 years ago

The game works fine for me with this, mod_overrides included. Did you configure steam correctly?

dribbleondo commented 7 years ago

Did you by happenstance have any commands in the Steam Command options for Payday 2, other than the preload for BLT4Linux, because that'll crash the game as of P1.

I normally put -skip_intro at the end of the command (or technically, after it), which caused an instant crash. Removing it fixed my issue.

Kazenin commented 7 years ago

The "set launch options" is configured like this: env LD_PRELOAD="$LD_PRELOAD ./libblt_loader.so" %command%

Is it wrong?

RomanHargrave commented 7 years ago

that looks OK

Kazenin commented 7 years ago

The game does not open. I verified files integrity and did not solve.

RomanHargrave commented 7 years ago

I can give you instructions for launching the game with GDB, but they are complicated

Kazenin commented 7 years ago

Well, let's try. How to configure?

RomanHargrave commented 7 years ago

Enter the PAYDAY install directory, then, set and export the following environment variables:

SteamAppId=218620
SteamAppUser=<steam username here>
SteamGameId=218620
SteamUser=<steam username here>
suppress_restart=1

then, run env LD_PRELOAD="./libblt_loader.so" gdb ./payday2_release.

When you arrive at a (gdb) prompt, enter r and press enter. If the game crashes, you'll arrive at another (gdb) prompt - enter bt and press enter, then reply with the output. To exit, type q, press enter and then confirm.

Kazenin commented 7 years ago

Good News. I got compile the library in another PC (Fedora). The game open but the mod_overrides mods does not work. Is there additional configuration to do? I tried using this mod https://modworkshop.net/mydownloads.php?action=view_down&did=16732

RomanHargrave commented 7 years ago

Make sure your overrides are under assets/mod_overrides, and make sure that each set of overrides is in a folder beneath mod_overrides, for instance:

PAYDAY 2/assets/mod_overrides/mod_name/path/to/asset.file.

---- On Mon, 26 Jun 2017 08:50:19 -0700 notifications@github.com wrote ----

Good News. I got compile the library in another PC (Fedora). The game open but the mod_overrides mods does not work. Is there additional configuration to do?

— You are receiving this because you commented. Reply to this email directly, view it on GitHub, or mute the thread.

RomanHargrave commented 7 years ago

Also, I don't know if you still have your other fedora install (the one from the beginning of the issue), but I would take it working on a different fedora install as a sign that your fedora install was corrupt :/

---- On Mon, 26 Jun 2017 08:50:19 -0700 notifications@github.com wrote ----

Good News. I got compile the library in another PC (Fedora). The game open but the mod_overrides mods does not work. Is there additional configuration to do?

— You are receiving this because you commented. Reply to this email directly, view it on GitHub, or mute the thread.