EQEmulator Forums

EQEmulator Forums (https://www.eqemulator.org/forums/index.php)
-   Support::Windows Servers (https://www.eqemulator.org/forums/forumdisplay.php?f=587)
-   -   When you change the source code, do you full compile each time? (https://www.eqemulator.org/forums/showthread.php?t=41701)

caravellex 01-18-2018 05:08 PM

When you change the source code, do you full compile each time?
 
Hey all! Just made my first changes to source and compiled the new source. It worked, but I was wondering if there were shortcuts when making new changes to the source - or do you run a full compile each time?

Uleat 01-18-2018 05:49 PM

Anytime that you 'pull' from the github repository, I highly recommend deleting your 'build' folder and re-running cmake.

New files can be added or old ones deleted and this is the only way to account for those actions.

If only content changes are made, cmake will not need to be rerun..but, I wouldn't rely on that until you're comfortable with determining what needs to be done.


When you 'build' for the first time (whether by new local repository or by the action of deleting the build folder) intermediate code objects (*.obj files) are created
during the compile process.

These files are then used to create the final executable binary file (i.e., zone.exe.)


Most of the time, you can get away with just selecting the 'Build' option from the solution right-click menu.

This will compile the full program if there are no existing *.obj files, or it will update any modified ones and just remake the binary file based on the old and updated *.obj files.

Obviously, this will be much faster than doing a 'clean' build each time.


Sometimes you will update something, say in a 'header' file or 'shared' file, and this will cause a more thorough update as entry point offsets change and more will need to be updated.


If you try to compile and start receiving 'external link cannot be resolved' errors, especially after being able to compile successfully, just select 'clean,' then 'build' or
just use 'rebuild' as that performs the same action.


All times are GMT -4. The time now is 06:16 AM.

Powered by vBulletin®, Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.