PR# 2978 No warning is given about missing .def file when compiling system as dynamic library
Problem Report Summary
Environment: Mozilla/4.0 (compatible; MSIE 5.5; Windows NT 4.0) Windows NT 4.0, SP 6 Visual Studio C++ 6.0
Synopsis: No warning is given about missing .def file when compiling system as dynamic library
I was trying to build a system (called vrt) as a dynamic library by specifying in the default section of the Ace file: shared_library_definition ("vrt.def") I started building and the Eiffel compilation proceeded fine. The C compilation also proceeded fine until it wanted to make edynlib.obj. The console window of "finish_freezing.exe" then suddely complained: NMAKE : fatal error U1073: don't know how to make 'E1\edynlib.c' Stop. The reason for this was that the file 'E1\edynlib.c' hadn't been created because the file 'vrt.def' didn't exist! However it took some time before I realized that it was the missing .def file that was the culprit, and it was very frustrating that EiffelStudio didn't simply tell me at degree 6 of freezing that it couldn't find the file 'vrt.def'!
1. Take any Eiffel system that compiles well as an executable. 2. Add the line "shared_library_definition (some_system.def)" to the system's Ace file, but don't create the file some_system.def. 3. Start freezing the system.