Including an Assembler module in APP does not generate an EXE

I have some procedures in assembler, but I don’t remember since which version of clarion, when I compile an app including those modules, it compiles ok but doesn’t generate the exe.
Does anyone have any idea why?
(it’s not very important because I always found some way to replace it)

Assembler modules can be compiled and produced OBJ files can be linked into Clarion DLLs/EXEs in any version of Clarion. The format of .A files is different from MS’s ASM files but nothing is too extraordinary.

1 Like

Alexey, any tips how to make an obj file? No matter what I do obj file is not created.
I’m trying to use your FastMath.a provided in another thread.

Using C11.1.13815.

  1. Add the FastMath.a file to the test project in the Solution Explorer, build the solution. Output pane says:

Making fastmath.obj : file does not exist
made fastmath.obj
Build Finished Successfully.

Actually no fastmath.obj, no test.exe.
In the Obj\Debug\test.cwproj.FileList.xml there is Created Files section:

<Created_Files>

<file name="C:\DEVELOPMENT\APPS\TEST\PERFORMANCE\OBJ\DEBUG\FASTMATH.OBJ" />
<file name="C:\DEVELOPMENT\APPS\TEST\PERFORMANCE\OBJ\DEBUG\TEST.OBJ" />

</Created_Files>

but as I said earlier there is no fastman.obj in that folder, nor in entire hard disk.

  1. Create new Win32.DLL solution, renamed FastMath.clw to FastMath.a, replace default clw code with the asm code, complie - same result.

Interesting thing: when FastMath.a file is added to the solution, and the functions from FastMath.a file are declared in MODULE, and those functions are called in clw code, no errors on compilation happen, and produced test.obj contains __SIN and __COS entries.

after adding the .a file, did you set its action = compile ?

(I always forget)

Yes I did, still no obj, no exe.

  1. The Clarion IDE shows the extension for the assembler files in the list of compilers (Tools->Options->Clarion->Clarion For Windows->Versions->Compilers tab). The correct extension is .a
  2. If to use the .asm extension for assembler files, the project system isn’t being known what to do with these files even if action for them is set to “Compile”.
  3. If to use the correct extension .a, the solution manager isn’t being known how to process assembler files. Therefore, it’s need to open the Properties panel for the .a file and set the “Compile” action manually. After that, the assembler file is being compiled during the solution/project build.
    SinAsm.zip (1.9 KB)
1 Like

After completely deleting and recreating the solution all is fine now with .a file.

Also should add that following statement works as well:
PRAGMA('compile(fastmath.a)')

I was going to say, I’ve been compiling .a files in c5 and c6 for years without any problems like this so I’m glad it working now for you.