[an error occurred while processing this directive] Node:No EXE, Next:, Previous:DJGPP and DLLs, Up:Compiling

8.16 Linker fails to produce the EXE program

Q: When I link my program, it fails to produce the .EXE executable....

Q: I run STUBIFY on a networked drive under Novell, but it doesn't produce a .EXE file. How come?

A: One possible reason for this is that your disk is full, or there's no swap space available for the DOS box on Windows. Run go32-v2 with no arguments and see what it reports, then follow the advice in configuring your system, for the optimal configuration.

If you are running DJGPP on a networked drive, you might have another copy of the file with the same name that GCC is creating in another directory somewhere on that networked drive. If that other directory is on your PATH, it is searched by Novell when the linker and STUBIFY try to create the executable file, because that file doesn't exist in the current directory. So what might actually happen is that the linker and STUBIFY are overwriting the files they find on your PATH instead of creating new files in the current directory.

You can verify that this indeed is the problem by searching your networked disks for files with the same name as those you are trying to build, and looking at their time stamps. If that is indeed the problem, then you have several possible ways of solving it:

  1. You can remove the other files, rename them, or move them to another directory that isn't searched by Novell.
  2. You can rename the program you are trying to link.
  3. You can change the way Novell searches for files (a.k.a. the search mode), so that it won't look in the directories on your PATH.
  4. You can change your access rights to the directory on the PATH where the other files reside, so that you won't have write privileges to that directory.
  5. You can change the search mode for STUBIFY and the linker (or for any other program that gives you that trouble) by running commands like these:
      SMODE stubify.exe 2
      SMODE ld.exe 2

[an error occurred while processing this directive]