Show Posts

This section allows you to view all posts made by this member. Note that you can only see posts made in areas you currently have access to.


Messages - Serneum

Pages: [1]
1
libzcs.dll
For 64-bit, that should be libz-cs-x64.dll
For 32-bit, that should be libz-cs.dll

Also, feel free to add these to your FAQ:
Quote
Quote
Error   94   error LNK2038: mismatch detected for '_MSC_VER': value '1600' doesn't match value '1800' in ccheck.obj
This is a problem that comes from using a newer version of Visual Studio. You can solve this problem by right-clicking your projects -> Properties -> Configuration Properties -> General, then change Platform Toolset to Visual Studio 2010 (v100). This will require that Visual Studio 2010 is installed on your machine as well.

Quote
1>     Creating library ..\..\out\release10-x64\build\plgsoundmngr\x64\plgsoundmngr.lib and object ..\..\out\release10-x64\build\plgsoundmngr\x64\plgsoundmngr.exp
1>data.obj : error LNK2001: unresolved external symbol "void __cdecl pslog::LogMessage(char const *,int,char const *,int,enum LOG_TYPES,unsigned int,char const *,...)" (?LogMessage@pslog@@YAXPEBDH0HW4LOG_TYPES@@I0ZZ)
1>instrumentmngr.obj : error LNK2001: unresolved external symbol "class csPtr<struct iDocument> __cdecl ParseFile(struct iObjectRegistry *,class csString const &)" (?ParseFile@@YA?AV?$csPtr@UiDocument@@@@PEAUiObjectRegistry@@AEBVcsString@@@Z)
1>manager.obj : error LNK2001: unresolved external symbol "bool __cdecl pslog::DoLog(int,enum LOG_TYPES,unsigned int)" (?DoLog@pslog@@YA_NHW4LOG_TYPES@@I@Z)
1>soundmanager.obj : error LNK2001: unresolved external symbol "public: void __cdecl psString::Split(class csStringArray &,char)" (?Split@psString@@QEAAXAEAVcsStringArray@@D@Z)
1>..\..\soundmngr.dll : fatal error LNK1120: 4 unresolved externals
Errors like the one listed above mean that you are missing some .lib files in your Linker. plgdbmysql requires you to add libmysql.lib and libpsutil.lib while plgsoundmngr requires you to add libpsmusic.lib and libpsutil.lib. You can add these by right-clicking on the project -> Properties -> Configuration Properties -> Linker -> Input and adding them to the Additional Dependencies field.

Quote
c:\development\cs\include\cstypes.h(29): fatal error C1083: Cannot open include file: 'float.h': No such file or directory
This error means that a header file cannot be found for some reason. Since you are either using Visual Studio 2010 or have it installed somewhere and are using Visual Studio 2010 as the Platform Toolset, it probably means that your installation did not complete properly. Navigate to your installation of Visual Studio 2010 (likely C:\Program Files\Microsoft Visual Studio 10.0 or something similar) and go into the VC directory and then the include directory. Look for the missing file, which is float.h in this case. There should be somewhere around 200 files in the directory, so if you only have a few the installation definitely failed to complete properly. This solution is what works for the majority of people.

2
I had an issue where my builds kept saying they couldn't find float.h. I looked through my VS 2010 files and noticed that none of the header files existed. I came across this solution and it solved my problems.

I'm also trying to use VS 2013 because that's what Unreal Engine 4 uses and I had some issues because the files detect that the compiler is not VS 2010. You can right-click your projects -> Properties -> Configuration Properties -> General, then change Platform Toolset to Visual Studio 2010 (v100). On a 64 bit operating system, it may say that the Visual Studio 2010 (v100) toolset is not installed because Visual Studio 2010 Express does not support 64-bit builds by default. By following the instructions in some of the other posts, you may not hit the same issue. I apparently couldn't get the Windows 7 SDK to install on my machine for some reason, so I just installed Visual Studio 2010 Professional and got around the issue.

I'm trying to configure everything for 64bit but Visual Studio 2010 is erroring out on setting properties once I set everything to ReleaseWithDlls and x64. I get an "unspecified error" when trying to open up the properties for the projects in the solution. I'll let you know if I can get around the issue.
I believe the problem I was having when I mentioned this was that my Visual Studio 2010 was not able to build 64-bit apps because the Windows 7 SDK hadn't installed and I thought it had. Using Visual Studio 2010 solves the issue because it can build 64-bit apps without any additional installations

Linker
Select and right click “plgdbmysql” > Properties.
Select Configuration Properties  > Linker > Input
Add libpsmusic.lib;libpsutil.lib; to “Additional Dependancies”
This applies to plgsoundmngr otherwise you'll get linker errors. You also don't need to add libpsmusic.lib to plgdbmysql

2) On my machine, C:\Program Files\Microsoft SDKs\Windows\v7.1\Lib is C:\Program Files\Microsoft SDKs\Windows\v7.1A\Lib and I'm wondering if this lib is even necessary. It looks like it's for developing Windows apps
I don't think these need to be added. Visual Studio appears to include $(WindowsSdkDir)lib\x64 as an inherited library. $(WindowsSdkDir) points to C:\Program Files\Microsoft SDKs\Windows\v7.0A, or in my case C:\Program Files (x86)\Microsoft SDKs\Windows\v7.0A. I assume the 32bit version would inherit $(WindowsSdkDir)lib. You can see where macros like $(WindowsSdkDir) point by right-clicking a project -> Properties -> Configuration properties -> VC++ Directories and then clicking on Library Directories and clicking <Edit...>. Once that pops up, click the "Macros >>" button and look through the values

3
Development Deliberation / Re: More agile development process
« on: March 05, 2015, 03:04:27 am »
The biggest question is, given the size of our team, would we get enough benefit to make it worth the time and effort to convert ?

With our current approach each dev/prospect/contributor essentially takes an informal branch to build their local environment then the changes are merged back in manually by the reviewing dev. I'm not sure how formal branching would change things and my experiences with anything other than manual merges have been disastrous.
You can actually convert from SVN to Git pretty easily nowadays. I believe Git can just check out the SVN repo and go from there. We migrated 100s of repos to Git at work and it didn't take too long.

Quote
One final consideration, admittedly minor : we get a lot more project starts than completions. If we did a formal branch for each project we'd have a great many dead branches. I guess that's not really an issue for any source control system. It just feels untidy to me.

You could have devs do local branches for their features/fixes. The branches are only on their machines until they get pushed up to the Git repo. You could also handle this the same way we do at work where you create a feature branch locally and just push to any branch of your choice.

Quote
Considering the high degree of sharing betweent the client, server and npcserver...how would we accomplish this without creating more work for ourselves?

You use some tool that has dependency management, like Maven, and have it pull down dependencies as part of the build. You can also modify those projects locally, push a locally modified version to a local Maven, and then the local builds for Planeshift would pull down the new version

Quote
This would be very nice. I have begun referring to the flyspray issue number associated with the bug in commit notes. It's a poor substitute. Do you know of anything that integrates with SVN ? Better yet, would you be interested in investigating the possibility of tying our current bug track to our current sourc control system?

I'm not sure of anything that integrates well with SVN. Honestly, I'm not sure of what integrates well with Git off the top of my head. I've used Pivotal and RTC. Of the two, I prefer Pivotal, but the only way to tie it together with the SCM system was through a build tool called AnthillPro and it's not free. A free alternative would be something like Jenkins, but you've already discussed automated build systems

Regarding unit testing, I've done some in java with junit and found that while very useful, you end up writing tests for each and every method/function and the tests are only as good as you make them. Ie. A test might test basic functionality (does it compute for one set of parameters) or the range and scope of the function (does it work for any combination of parameters including zeros nulls max and min values). I'm curious about whether or not there is a better way of doing this in c/c++ or if this is just the price to pay for added assurance.
I'm pretty sure what you describe with unit testing is exactly how it should be. Your methods should be easily testable to prove out that they do whatever minor function they have been designed to handle. You could add in libraries like Mockito to mock out full objects and test behavior based on mocked input/fields. You want as much code coverage as you can get and tests should be short and simple, whenever possible

All of this being said, it sounds like the team is a lot smaller than I expected and it's probably not worth the time and effort to change things right now, but it's something that could be considered if more people got on board.

Sorry my reply was so late. I stopped getting emails about replies for some reason

4
Development Deliberation / Re: More agile development process
« on: January 22, 2015, 06:39:01 pm »
About Cal3D and CS - I meant it would be nice to have a forks of them, compatible with current PS version and supported by the PS team (but maybe a cost of maintaining them will be too high?)
Nope having forks of CS would not be good at all. We work along the CS team to make sure PS can always compile with latest CS revision. Sometimes it's not possible due to the fact that CS must continue its development process and it may take time to find out where the problems are. Forking CS will only lead to PS unable to use the latest CS features on the long run.

That's not entirely true. The way a lot of projects work nowadays is they fork a major project, add their own stuff, and then merge in changes from the main repo they forked. It you look at Libre Office, I believe they forked Open Office and merge in any changes Open Office makes. Other projects do the same thing. It would, however, be a lot more work because devs would have to track when CS has new releases and then merge changes in

5
Development Deliberation / Re: Build Guide: Win 32/64 MS Visual C++ 2010
« on: January 22, 2015, 04:35:14 am »
Hey Tuathanach, I'm just now getting around to trying out your guide. I'm trying to configure everything for 64bit but Visual Studio 2010 is erroring out on setting properties once I set everything to ReleaseWithDlls and x64. I get an "unspecified error" when trying to open up the properties for the projects in the solution. I'll let you know if I can get around the issue.

Other notes:
1) On my machine, C:\development\CS\winlibs\win32 is C:\development\CS\winlibs\x86
2) On my machine, C:\Program Files\Microsoft SDKs\Windows\v7.1\Lib is C:\Program Files\Microsoft SDKs\Windows\v7.1A\Lib and I'm wondering if this lib is even necessary. It looks like it's for developing Windows apps
3)
Select Configuration Properties > General
Should be
Select Configuration Properties > VC++ Directories

Set “Library Files” to the following:
Should be
Set “Library Directories” to the following:

6
Development Deliberation / Re: More agile development process
« on: January 22, 2015, 03:35:43 am »
If I may chime in:
I use Git at work. It is really easy to create branches and I usually create a local branch to handle a bug fix and then tie that back to the main branch I'm working on. It makes it easier to manage small changes and I can switch branches without creating a series of dependent commits. Like Eonwind said, it does come down to a personal preference.

I work in enterprise software and I can say having everything split out into smaller "libraries" is much, much easier to manage, especially when some of the code doesn't need to be changed very often. That being said, I work in Java and we use Ant/Maven to handle dependencies and the building of source, so it's just generally a lot easier. If it's easier to just leave PlaneShift source as it is, that's a fair enough assessment.

An issue tracker integrated with the repositories sounds a lot like Rational Team Concert or even Pivotal. You set up Epics or Milestones and put all of the bugs or work items in their specific milestone or epic. Even better would be adding in Gerrit (if using Git) for Code Reviews. Code gets submitted, someone higher up looks at it and approves or denies it. If it gets approved, it gets merged into the main branch.

Once I finally get everything set up and working, I can help a tiny bit with unit tests. I'm used to Java so I'd have to figure out what C++ uses for it all and learn it.

Would an automated build system be something like Jenkins? I've worked with that and I actually work on a build tool on a daily basis. They're really nice because they compile the code, run tests, upload the reports, and send out notifications if something fails.

Pages: [1]