|
From: Timo K S. <tks...@cc...> - 2001-10-23 13:44:51
|
I have a large project, and Dev C++ does not like large projects. Does anyone know if it is possible to work around the second problem? I managed to get around the first one. - The project manager should be aware of the directory structure. I have a large project, and the source is distributed to several subdirectories. While Dev C++ currently allows me to add files from multiple directories, it is not a good idea to use Dev C++ that way. Dev C++ puts all object files to a single directory, and if there are several files with same name, some object files get overwritten, and I get undefined symbols. The project manager should create a copy of the source directory structure and place object files in the correct copy of the source directory. Also the project manager GUI should use treeview showing the directory structure instead of the current listview. And when I add files to project, I certainly do not want it to open each file. - The building process is way too simplified. Gcc links given object files from left to right and only picks those symbols which have been referenced so far. This means that if there is two-way dependencies, simply listing all object files to gcc does result undefined symbols. A hack to work around this would be to list all object files twice. But a complex source can have even more complex dependencies, and you may have to list the object files three or even more times. A better solution is to make a one big library from the object files just before linking to executable. Then use ranlib to create nice symboltable for the library, finally linking the library into executable with gcc. This works great for me - when I use gnu make manually and not Dev C++. I was able to work around the first problem, by making sure my project only had unique source filenames, but I think there is no way to make current Dev C++ to work around the second problem :/ There is an example of my current Makefile(.in) at.. http://cvs.sourceforge.net/cgi-bin/viewcvs.cgi/glelite/Teddy/src/Makefile.in?rev=HEAD&content-type=text/vnd.viewcvs-markup ..for example of use of ar and ranlib before executable linking. The project I'm working on is glelite.sf.net -- Timo Suoranta -- tks...@cc... -- |