Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Building on Linux [skipping incompatible ../../lib/ges/linux32/libpython3.so ] #19

Open
AgentAgrimar opened this issue Feb 21, 2016 · 19 comments

Comments

@AgentAgrimar
Copy link

This is probably a bad place to ask this, but seeing as people are successfully doing it.

As the above title is sort of saying, how do you build on Linux?

I've been using Ubuntu 15.10, and i've been trying day in-day out to compile any SSDK13 mod (Including one of my own) to compile for Linux, I've tried following tutorials on the Valve Developer sites, and I could never seem to get it to work...

I end up getting a bunch of errors of files/directory's not being found

(EX. fatal error: sys/cdefs.h: No such file or directory In file included from /usr/include/math.h:26:0, and shortly after **make: * [all] Error 2)

Does anybody have any possible tutorials, that could better explain?

@AgentAgrimar
Copy link
Author

I have fixed the above issue, making one last Google helped

but now i have things like

src/tier1/checksum_sha1.cpp:195:29: warning: ignoring return value of ‘size_t fread(void_, size_t, size_t, FILE_)’, declared with attribute warn_unused_result [-Wunused-result]
fread(uData, 1, MAX_FILE_READ_BUFFER, fIn);

src/mathlib/sse.cpp:822:3: warning: #warning "_SSE2_SinCos NOT implemented!" [-Wcpp]
#warning "_SSE2_SinCos NOT implemented!"
^

src/mathlib/sse.cpp:342:115: error: narrowing conversion of ‘2147483648u’ from ‘unsigned int’ to ‘int’ inside { } [-Wnarrowing]

@droidmonkey
Copy link
Member

The first two items are warnings, the error, however, is new to me.

@AgentAgrimar
Copy link
Author

And now I get this on Server

**make: * No rule to make target '../../lib/ges/linux32/libpython3.so', needed by 'obj_server_ges_linux32/release/server.so'. Stop.

even though it's there and compiled.

@AgentAgrimar
Copy link
Author

I'm so close! But now I get this...

---- LINKING obj_server_ges_linux32/release/server.so [release] ----
/valve/steam-runtime/amd64/i686-unknown-linux-gnu/bin/../lib/gcc/i686-unknown-linux-gnu/4.6.3/../../../../i686-unknown-linux-gnu/bin/ld: skipping incompatible ../../lib/ges/linux32/libpython3.so when searching for -lpython3
/valve/steam-runtime/amd64/i686-unknown-linux-gnu/bin/../lib/gcc/i686-unknown-linux-gnu/4.6.3/../../../../i686-unknown-linux-gnu/bin/ld: cannot find -lpython3
collect2: ld returned 1 exit status
../../devtools/makefile_base_posix.mak:434: recipe for target 'obj_server_ges_linux32/release/server.so' failed
make: ** [obj_server_ges_linux32/release/server.so] Error 1
====0 errors, 42 warnings, total time: 00:00:24 seconds====

@droidmonkey

@AgentAgrimar AgentAgrimar changed the title Building on Linux [Not an issue with the game, but my own knowledge.] Building on Linux [skipping incompatible ../../lib/ges/linux32/libpython3.so ] Feb 22, 2016
@droidmonkey
Copy link
Member

Have you been using the "runmake.sh" script?

@AgentAgrimar
Copy link
Author

Both produce the same output.

@droidmonkey

@droidmonkey
Copy link
Member

I think the Python library got built as 32 bit when the rest of the mod was built as 64 bit. Notice that the amd64 steam runtime is being used. It should be the 32 bit steam runtime.

@AgentAgrimar
Copy link
Author

Where would I go to force it 32-bit?

@droidmonkey

@droidmonkey
Copy link
Member

You do that when you establish the steam runtime, you setup the runtime to point to the 32-bit libraries.

@ardmn
Copy link

ardmn commented Mar 31, 2016

@AgentAgrimar Can you explain how did you fix it , please ?

@droidmonkey
Copy link
Member

Go to your steam runtime SDK in a terminal window and type: ./setup.sh --target=i386

Then make sure you have an ENV variable setup: STEAM_RUNTIME_TARGET_ARCH=i386

Then go to ges-code directory and start the build: ./runmake.sh

You should clean out the python build before you do that.

@ElectricPrism
Copy link
Contributor

Has anyone been able to build this on Linux successfully yet? If we can get a working build we can throw up a AUR package -- ges-git and that I'm sure will attract some attention and dev eyes on the project.

@samrocketman
Copy link

Why isn't "how to build" in the README?

@droidmonkey
Copy link
Member

The build process has moved to cmake.

@samrocketman
Copy link

The build process has moved to cmake.

Is this in response to my question? I think it would vastly improve support overhead if instructions on how to build would be in the README.

@droidmonkey
Copy link
Member

I am not disagreeing with you, but I wanted to clarify that this thread no longer applies as a solution. When I get a chance I'll write up a quick cmake process and pre-requisites in the readme.

@ElectricPrism
Copy link
Contributor

@droidmonkey - that would be awesome, I would love to try to build on Arch, second choice would be Debian (Which is SteamOS/Ubuntu, etc...)

@droidmonkey
Copy link
Member

I added instructions to the readme: https://github.com/goldeneye-source/ges-code#how-to-build

@ChildishGiant
Copy link

Does this mean the client can be run natively on linux or is this more for the server side stuff?

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

6 participants