Path: news.cs.au.dk!not-for-mail From: "Sascha Kimmel \(tricos Mediaservice\)" Newsgroups: comp.lang.beta Subject: GUIENVSYSTEMENV and SYSTEMENV includes gives a LINKER ERROR Date: 7 Dec 1999 08:18:51 -0000 Organization: University of Aarhus, Department of Computer Science (DAIMI) Lines: 127 Approved: mailtonews@cs.au.dk Distribution: world Message-ID: <19991207081851.20027.qmail@noatun.mjolner.dk> Reply-To: "Sascha Kimmel \(tricos Mediaservice\)" NNTP-Posting-Host: daimi.cs.au.dk X-Trace: xinwen.cs.au.dk 944554761 10401729 255.255.255.255 (7 Dec 1999 08:19:21 GMT) X-Complaints-To: news@cs.au.dk NNTP-Posting-Date: 7 Dec 1999 08:19:21 GMT Xref: news.cs.au.dk comp.lang.beta:12187 Hi, I got the following message: >--------------------------------------------------------------------------- --< Mjølner BETA Compiler version 5.4.5 (711) for WinNT/Win95 (i386) (MS) Target machine type nti_ms Building dependency graph for: 'test_changeres' ... Parsing: 'test_changeres' Translating fragments ... Bind fragments in: 'test_changeres'!Checking ================= Compiler warnings: ================= gui[]->theWindowEnv[] ***** A run-time qualification check will be generated here -------------------------------------------- No. of warnings: 1 !Code generation Linking guienvntsystemenvbody.obj : error LNK2005: M1BASICSCHEDULER already defined in s ystemenv_ntbody.obj guienvntsystemenvbody.obj : error LNK2005: G2BASICSCHEDULER already defined in s ystemenv_ntbody.obj guienvntsystemenvbody.obj : error LNK2005: M2BASICSCHEDULER already defined in s ystemenv_ntbody.obj guienvntsystemenvbody.obj : error LNK2005: M1FORKSECOND already defined in syste menv_ntbody.obj guienvntsystemenvbody.obj : error LNK2005: M1PIOENSURE already defined in system env_ntbody.obj guienvntsystemenvbody.obj : error LNK2005: M1PIOPRIVATE already defined in syste menv_ntbody.obj guienvntsystemenvbody.obj : error LNK2005: T1BASICSCHEDULER already defined in s ystemenv_ntbody.obj guienvntsystemenvbody.obj : error LNK2005: T2BASICSCHEDULER already defined in s ystemenv_ntbody.obj guienvntsystemenvbody.obj : error LNK2005: T1FORKSECOND already defined in syste menv_ntbody.obj guienvntsystemenvbody.obj : error LNK2005: T1PIOENSURE already defined in system env_ntbody.obj guienvntsystemenvbody.obj : error LNK2005: T1PIOPRIVATE already defined in syste menv_ntbody.obj test_changeres.exe : fatal error LNK1169: one or more multiply defined symbols f ound A Link Error Occurred >--------------------------------------------------------------------------- --< when trying to compile the following program: test_changeres.bet: -------------------> ORIGIN '~beta/guienv/guienvsystemenv'; INCLUDE 'changeRes' 'getScreenResolution'; INCLUDE '~beta/process/processmanager'; -- program: descriptor -- systemEnv (# setWindowEnv::< (# do gui[]->theWindowEnv[] #); gui:@guienv(# [...] #); [...] do [...] (480,640,24)->changeRes; [...] #) <-------------------- getScreenResolution.bet: -----------------------> ORIGIN '~beta/guienv/guienv'; --- lib: attributes --- GetScreenResolution: (# [...] #); <------------------------ changeres.bet: --------------> ORIGIN '~beta/basiclib/systemenv'; INCLUDE '~beta/process/processmanager'; -- systemlib: attributes -- changeRes: (# mp:@process; [...] #); <-------------- As you can see the main program has GUIENVSYSTEMENV as origin and "changeres.bet" has SYSTEMENV - I've already put the changeres functions into the SYSTEMLIB so that I can access themn from the main program, BUT it seems that including SYSTEMENV if already GUIENVSYSTEMENV is used will lead to the linker error - why doesn't the BETA compiler give a notice? And how can I solve it? Thanks in advance. regards, Sascha Kimmel