我一直尝试在我的计算机上编译 Valve Source SDK (2007),但总是遇到同样的错误:
In file included from ../public/tier1/interface.h:50:0,
from ../utils/serverplugin_sample/serverplugin_empty.cpp:13:
../public/tier0/platform.h:46:17: new.h: No such file or directory
我对 C++ 编码和编译还很陌生,但使用时apt-file search
我尝试使用 Makefile 中对所需文件的每个建议(libstdc++.a
和libgcc_eh.a
),但都不起作用。然后我在 Makefile 中发现一条注释,说建议使用 gcc 4.2.2 - 我认为旧代码不适用于新版本,但 gcc-4.2 在 12.10 中不可用。
所以我的问题是:
如果我的假设是正确的 - 我如何在 Quantal 上获得 gcc 4.2.2?
如果我的假设是错误的 - 这里还可能存在什么问题?
Makefile 的相关部分:
# compiler options (gcc 3.4.1 will work - 4.2.2 recommended)
CC=/usr/bin/gcc
CPLUS=/usr/bin/g++
CLINK=/usr/bin/gcc
CPP_LIB="/usr/lib/gcc/x86_64-w64-mingw32/4.6/libstdc++.a /usr/lib/gcc/x86_64-w64-mingw32/4.6/libgcc_eh.a"
# GCC 4.2.2 optimization flags, if you're using anything below, don't use these!
OPTFLAGS=-O1 -fomit-frame-pointer -ffast-math -fforce-addr -funroll-loops -fthread-jumps -fcrossjumping -foptimize-sibling-calls -fcse-follow-jumps -fcse-skip-blocks -fgcse -fgcse-lm -fexpensive-optimizations -frerun-cse-after-loop -fcaller-saves -fpeephole2 -fschedule-insns2 -fsched-interblock -fsched-spec -fregmove -fstrict-overflow -fdelete-null-pointer-checks -freorder-blocks -freorder-functions -falign-functions -falign-jumps -falign-loops -falign-labels -ftree-vrp -ftree-pre -finline-functions -funswitch-loops -fgcse-after-reload
#OPTFLAGS=
# put any compiler flags you want passed here
USER_CFLAGS=-m32
答案1
更新:我刚刚安装了 Hardy,并在那里安装了 gcc-4.2。现在没有出现错误,所以这就是问题所在。我现在遇到了其他问题,但我认为它们与编译器无关。