I appreciate POLINK, so thats why I am using POLINK as my standard linker with masm, it suddenly wont link and gives error messages, I replace it with MSLINK and it links no problem
Magnus,
What is the problem that won't link ? Many of us use POLINK and if there is a problem it would be useful for Pelle to know about.
Quote from: hutch-- on July 16, 2006, 05:12:49 AM
Magnus,
What is the problem that won't link ? Many of us use POLINK and if there is a problem it would be useful for Pelle to know about.
I have used POLINK for very long now, I am also confused why it suddenly starts to generate errormessage
Microsoft (R) Macro Assembler Version 6.14.8444
Copyright (C) Microsoft Corp 1981-1997. All rights reserved.
Assembling: C:\masm32\d3d9ex\test6import.asm
POLINK: fel: Symbolen 'ProcPrologue' är definierad flera gånger.
POLINK: fel: Symbolen 'ProcEpilog' är definierad flera gånger.
POLINK: fel: Symbolen 'ProcPrologue' är definierad flera gånger.
POLINK: fel: Symbolen 'ScalarLoop' är definierad flera gånger.
POLINK: fel: Symbolen 'SIMDMatrix' är definierad flera gånger.
POLINK: fel: Symbolen 'TransformLoop' är definierad flera gånger.
POLINK: fel: Symbolen 'PostTransformLoop' är definierad flera gånger.
POLINK: fel: Symbolen 'ProcEpilog' är definierad flera gånger.
POLINK: fel: Symbolen 'ProcPrologue' är definierad flera gånger.
POLINK: fel: Symbolen 'TransformLoop' är definierad flera gånger.
POLINK: fel: Symbolen 'ProcEpilog' är definierad flera gånger.
POLINK: fel: Symbolen 'ProcPrologue' är definierad flera gånger.
POLINK: fel: Symbolen 'ScalarLoop' är definierad flera gånger.
POLINK: fel: Symbolen 'SIMDMatrix' är definierad flera gånger.
POLINK: fel: Symbolen 'TransformLoop' är definierad flera gånger.
POLINK: fel: Symbolen 'PostTransformLoop' är definierad flera gånger.
POLINK: fel: Symbolen 'ProcEpilog' är definierad flera gånger.
POLINK: fel: Symbolen 'ProcPrologue' är definierad flera gånger.
POLINK: fel: Symbolen 'ScalarLoop' är definierad flera gånger.
POLINK: fel: Symbolen 'SIMDMatrix' är definierad flera gånger.
POLINK: fel: Symbolen 'TransformLoop' är definierad flera gånger.
POLINK: fel: Symbolen 'PostTransformLoop' är definierad flera gånger.
POLINK: fel: Symbolen 'ProcEpilog' är definierad flera gånger.
POLINK: fel: Symbolen 'exception' är definierad flera gånger.
POLINK: fel: Symbolen 'ending' är definierad flera gånger.
POLINK: fel: Symbolen 'x5' är definierad flera gånger.
POLINK: fel: Symbolen 'x7' är definierad flera gånger.
POLINK: fel: Symbolen 'ending' är definierad flera gånger.
POLINK: fel: Symbolen 'x5' är definierad flera gånger.
POLINK: fel: Symbolen 'x7' är definierad flera gånger.
POLINK: fel: Symbolen 'ending' är definierad flera gånger.
_
Link error
Tryck på en valfri tangent för att fortsätta...
I started to include a couple of .inc files with PROC's inside them and suddenly I saw this problem
they are last on the list, because I need to have reference to api calls for filehandling /memoryreserving, because I included .obj fileimporter
If I have read the error messages correctly, you are redefining some variables. Ordinarily this conflict would be caught by the assembler. You are running into this problem because you are bypassing the assembler by creating the obj files separately so polink must do the dirty work. polink finds this type of problem because it requires better programming habits. It is not as forgiving as link is. In this case polink is doing a better job because it is not allowing you to create an exe that could crash your system. Stick with polink and correct the errors. :U
Also, use the assembler to test assemble all the .asm files (*.asm) because you will then get line numbers. If you are mixing C with assembly which is the only reason to do it the way you are doing it, have fun.
Paul
Quote from: PBrennick on July 16, 2006, 08:40:35 PM
If I have read the error messages correctly, you are redefining some variables. Ordinarily this conflict would be caught by the assembler. You are running into this problem because you are bypassing the assembler by creating the obj files separately so polink must do the dirty work. polink finds this type of problem because it requires better programming habits. It is not as forgiving as link is. In this case polink is doing a better job because it is not allowing you to create an exe that could crash your system. Stick with polink and correct the errors. :U
Also, use the assembler to test assemble all the .asm files (*.asm) because you will then get line numbers. If you are mixing C with assembly which is the only reason to do it the way you are doing it, have fun.
Paul
not as you think, this is an ordinary assemble&link from Qeditor
code is organized into one .asm file and several .inc files
this is not my procedures and variables, they are somewhere in included libs
as I get unusual big .exe, I suspect somewhere in my includes links same libs several times (1mb compared to around 300kb)
so that can explain multiple instances of proc's /variables
for nonswedes
är definierad flera gånger = is defined several times
Magnus,
What may be the trick to track it down is write duplicate guards in the include files so that if they are duplicated, you get a warning. The method used in the MASM32 include file should do the job for you and it is simple enough to impliment.
POLINK has several "weaknesses" (or bugs). This one I'm familiar with (if I translate the messages correctly). Try if option "/FORCE:MULTIPLE" makes the errors disappear.