Hi folks,
I took a decently long break from any "real" pw development (prior to the releases of src) and I'm finally taking a crack at building these files, starting with the clean 1.5.2 package that
jv90 so kindly made available here. Silly of me to think I was ready to dive headfirst into C++ game and game engine compilation from mostly working with lua scripts and writing python-based tools for narrow-scoped modifications for xml, but I figured I'd just see how far I could get through the compilation process... To my surprise, I got pretty far (I think?) through building the client, but I think that I'm finally stumped now.. So I'm, reluctantly, here to ask for a bit of a point in the right direction... or at least just some direction towards that general vicinity.
Following the included instructions, I was able to successfully perform all build stages for
Angelica2, and I was able to do the same for
Common up until the
EditorRelease build of the whole solution. At this point, it throws a linker error at some point during the build of
APhysXEngine, which seems to prevent completion of the solution build for subsequent components starting with AFileDialog, which reports inability to open an input file that I'm assuming is (part or all of) what failed to be generated in the first error.
Code:
Error 1 fatal error LNK1257: code generation failed APhysXEngine
Error 2 fatal error LNK1181: cannot open input file '..\..\aphysxintegration\lib_vc8\aphysxenginestatic.lib' AFileDialog
I checked the
../APhysXIntegration/lib_vc8 directory, and it seems that
APhysXEngineStatic_d.lib is generated (I think from the
EditorDebug build?) but,
APhysXEngineStatic.lib is, indeed, missing, I'd assume due to build failure.
I tried to re-order included libraries to make sure it's getting what it expects for dependencies, but it's been an age since I touched Visual Studio, and C/C++ isn't exactly native to me (was looking forward to learning a lot from pw by toying with things in both source code and binaries to start to connect the dots between the two in way(s) that make more intuitive sense to my, particularly, autistic brain. And, yes, I know that this isn't an optimal source to use for connecting dots between source code and binary in IDA, but I already have a decade and a half of experience with PW and a lil bit less with PW development, so perhaps it isn't such a bad option after all... But I digress.
As VS isn't exactly native to me, I'm not really sure how to word my question, but hopefully it'll make sense to someone reading this post: During the process of resolving dependencies, I located and added the directories containing unmet dependencies to the
include and
libraries list as VS threw errors at me. This is pretty much the main/only reason I'm posting here, as I'll be cleaning and rebuilding for eons if I try every possible ordering of libraries and includes.. I'd just like to know I'm on the right track before I commit to several days of failing builds due to incorrect scope(s) and dependency priorities/order.
Also worth noting: I did try to build the
element solution once I hit this wall with
APhysXEngine, and it seems to be pretty close to a successful build, so I'm thinking that this might be the logjam, as it did spit out the client exe and many of the dlls, but perhaps I'm just being overly optimistic (thrilled that I managed to get this far, yet humbled by the under-the-hood complexity of a game I've considered fairly straightforward for such a long time)
Also, as a side inquiry... and please excuse my gross ignorance here.. (I know I'm out of my league with all of this, but that's how we learn, right?): Is adding these output directories to the appropriate lists in [VS: Options -> VC++ Directories] the correct way to connect these dependencies to the sources which require them, or is there a better (perhaps a safer/more secure way, considering scope(s)?) way to accomplish this in VS? Nooby question, I know... Try not to flame me too hard; I'm happy to read documentation, I just need to know where to look and/or how to ask my question in a way that makes sense to search engines and/or anyone who's not practically a VS and C/C++ virgin.
Anyways, in the meantime, I'll continue my trial and error and edit this post with any further findings or the solution if I, miraculously, find it by my own methods. Thanks, in advance, for any feedback and/or pointers (even the C-flavored kind), and a really big, personal, thank you to everyone who's provided information and opportunities for myself and others to learn from here on the RZ forums over all these years!
~ Eis