LINUX.ORG.RU

Linux Port (Part 2)

 , ,


0

1

Подымаю тему, но с не много другим подходом.

Выяснились кое какие детали, и возможно строение этих файлов заточено под Visual Studio 6.0

И было посоветовано мне написать все эти Makefile's по новой.

Вопрос: как мне это делать, или куда рыть?

P.S. порт имеется в самом движке и игре, и его классы подписаны что то вроде *_linux

Вот вам папка с Makefile's: https://yadi.sk/d/oT_SrA23qnRj7

ifeq "$(HOSTNAME)" "alfred_linux.valvesoftware.com"
	CC=gcc
	CPLUS=g++
	CPP_LIB=-lstdc++
endif

ifeq "$(HOSTNAME)" "alfred"
	CC=/usr/bin/gcc
	CPLUS=/usr/bin/g++
	CPP_LIB = /usr/lib/gcc-lib/i586-mandrake-linux-gnu/2.96/libstdc++.a
endif

ifeq "$(HOSTNAME)" "linuxbuild2"
        CC=/usr/local/bin/gcc
        CPLUS=/usr/local/bin/g++
        CPP_LIB = /usr/local/lib/gcc-lib/i686-pc-linux-gnu/2.95.2/libstdc++.a
endif

...отличные Makefile'ы...

Впрочем, несмотря на эти захардкоженные значения, видно, что эти файлы рассчитаны на GNU/Linux и GCC. Нужно запускать как-то так: make CC=<компилятор C> CPLUS=<компилятор С++> CPP_LIB= [цель] (CPP_LIB присваивается пустая строка, потому что она в обычном случае не нужна). Правда, видно, что ожидается GCC 2.95, не факт, что на новых версиях соберётся.

Ну а дальше смотреть, какие проблемы получаются.

proud_anon ★★★★★
()
Ответ на: комментарий от proud_anon

Действительно команда подходящая.

Все прошлые ошибки исчезли!

Но появились вот такие:

cc1plus: warning: -malign-loops is obsolete, use -falign-loops
cc1plus: warning: -malign-jumps is obsolete, use -falign-jumps
cc1plus: warning: -malign-functions is obsolete, use -falign-functions
../tier0/dbg.cpp:1:0: error: CPU you selected does not support x86-64 instruction set
это 64 битная сборка А это 32 битная
g++: warning: ‘-mcpu=’ is deprecated; use ‘-mtune=’ or ‘-march=’ instead
../tier0/dbg.cpp:1:0: error: CPU you selected does not support x86-64 instruction set
 //=========== (C) Copyright 1999 Valve, L.L.C. All rights reserved. ===========
 ^
Makefile.tier0:47: recipe for target 'obj/tier0/dbg.o' failed
make[1]: *** [obj/tier0/dbg.o] Error 1

JoeCrocker
() автор топика
Ответ на: комментарий от proud_anon

И так я немного глянул в интернете, и исправил код.

Теперь остались такие ошибки:

cc1plus: warning: -malign-loops is obsolete, use -falign-loops
cc1plus: warning: -malign-jumps is obsolete, use -falign-jumps
cc1plus: warning: -malign-functions is obsolete, use -falign-functions
In file included from ../public/tier0/platform.h:503:0,
                 from ../public/basetypes.h:20,
                 from ../public/tier0/dbg.h:22,
                 from ../tier0/dbg.cpp:25:
../public/tier0/fasttimer.h: In member function ‘void CCycleCount::Sample()’:
../public/tier0/fasttimer.h:249:2: error: expected ‘(’ before ‘{’ token
  {
  ^
../public/tier0/fasttimer.h:255:3: error: ‘mov’ was not declared in this scope
   mov  ecx, pSample
   ^

JoeCrocker
() автор топика
Ответ на: комментарий от proud_anon

Ещё поработал над кодом, выходит вот это:

../public/tier0/fasttimer.h:260: Error: too many memory references for `mov'

И сама строка:

__asm
	(
		// force the cpu to synchronize the instruction queue
		// NJS: CPUID can really impact performance in tight loops.
		//cpuid
		//cpuid
		//cpuid
		"mov		ecx, pSample"
		"rdtsc"
		"mov		[ecx],     eax"
		"mov		[ecx+4],   edx"
	);

JoeCrocker
() автор топика
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.