Hello,
I've looked through the forums and I'm trying to see if I can create an app with full static linkage (i.e. no DLL's needed) that will export a u3d file. After struggling through the build process in MS VS 2008, I was able to get the HelloWorld program to work, but it still needs the IFXCore.dll and the Plugins\IFXExporting.dll to work. Is there a way to eliminate that? Reasoning is to make deployments better because this will eventually go into a web service.
Thanks
If you would like to refer to this comment somewhere else in this project, copy and paste the following link:
Anything can be done once you have an assembler compiler working on a system ;)
There is no compilation switch for static linkage, the dll files are really not libraries to link
your program against, but dynamically loadable modules. So to get rid of libs you have to do some coding.
For my purposes I have gone the easy way of changing the search subroutine to look for
IFXCore.dll and IFXExporting.dll in current dir, system dir, hardcoded and command-line specified locations
(optionally - without "Plugins" folder needed).
BTW, why "struggling" - as far as I remember my cmake builds just almost worked.
Can you share the problems you faced with your build?
If you would like to refer to this comment somewhere else in this project, copy and paste the following link:
That is a good idea to change search paths. I saw in the code where those paths were, so might make the switch. As for the 'struggling' I have to elaborate some on my development environment in order to explain. I work at a government facility and we don't have admin rights to our systems. These systems are also not on the Internet, so if anything needs to be installed or even unzipped to a directory, an admin has to do it and this can include several days of requests, paperwork, etc. So, to try to use your cmake system is another stepping stone that takes time. Using the standard way of building U3D, was difficult because of having to set environment variables, which I can't do on my own. I can't even add to the existing system variables with my own user variables. If I right-click My Computer to bring up properties, I can't even look at the environment variables…
So, my struggle is with the restrictions I have on the systems I develop on. At home, no problem and I hope other developers that use U3D don't have the headaches that I do. Having additional software like CMake, and Cygwin installed or even residing on the system I use involves accreditation, paperwork, etc. I know this all sounds weird and difficult to get through, but it is a prime example of how hard it is to develop within a government house. Seems kind of silly to use Open Source software then doesn't it?
Thanks for your suggestions.
If you would like to refer to this comment somewhere else in this project, copy and paste the following link:
Anonymous
-
2010-07-26
> That is a good idea to change search paths. I saw in the code where those paths were, so might make the switch.
Keep in mind that the "Plugins" location is searched (including subdirs) for possible plugins.
It is better to patch the source to look only for existing plugins (Exporting, Importing, Scheduling, Rendering),
ignoring subdirs. Look at how I changed CIFXComponentManager::FindPlugins routine in my version.
If you would like to refer to this comment somewhere else in this project, copy and paste the following link:
Anonymous
-
2010-07-26
> I know this all sounds weird and difficult to get through, but it is a prime example of how hard it is to develop within a government house.
Well, in my case it looks differently - my state university often does not provide necessary equipment, but at least it does not stop me from using my own to get the job done. Liberate yourself, bring your notebook to work! (Oh, but I guess it is likely prohibited and reading this message will make your security people to raise the idea of random checks of entering and leaving employees for swallowed USB Flash drives in their guts :( ;) BTW, a friend of mine worked at a commercial entity that _obliged_ all to bring their personal notebook PCs - to avoid taking responsibility for use of "liberated" software.
If you would like to refer to this comment somewhere else in this project, copy and paste the following link:
Hello,
I've looked through the forums and I'm trying to see if I can create an app with full static linkage (i.e. no DLL's needed) that will export a u3d file. After struggling through the build process in MS VS 2008, I was able to get the HelloWorld program to work, but it still needs the IFXCore.dll and the Plugins\IFXExporting.dll to work. Is there a way to eliminate that? Reasoning is to make deployments better because this will eventually go into a web service.
Thanks
Anything can be done once you have an assembler compiler working on a system ;)
There is no compilation switch for static linkage, the dll files are really not libraries to link
your program against, but dynamically loadable modules. So to get rid of libs you have to do some coding.
For my purposes I have gone the easy way of changing the search subroutine to look for
IFXCore.dll and IFXExporting.dll in current dir, system dir, hardcoded and command-line specified locations
(optionally - without "Plugins" folder needed).
BTW, why "struggling" - as far as I remember my cmake builds just almost worked.
Can you share the problems you faced with your build?
That is a good idea to change search paths. I saw in the code where those paths were, so might make the switch. As for the 'struggling' I have to elaborate some on my development environment in order to explain. I work at a government facility and we don't have admin rights to our systems. These systems are also not on the Internet, so if anything needs to be installed or even unzipped to a directory, an admin has to do it and this can include several days of requests, paperwork, etc. So, to try to use your cmake system is another stepping stone that takes time. Using the standard way of building U3D, was difficult because of having to set environment variables, which I can't do on my own. I can't even add to the existing system variables with my own user variables. If I right-click My Computer to bring up properties, I can't even look at the environment variables…
So, my struggle is with the restrictions I have on the systems I develop on. At home, no problem and I hope other developers that use U3D don't have the headaches that I do. Having additional software like CMake, and Cygwin installed or even residing on the system I use involves accreditation, paperwork, etc. I know this all sounds weird and difficult to get through, but it is a prime example of how hard it is to develop within a government house. Seems kind of silly to use Open Source software then doesn't it?
Thanks for your suggestions.
> That is a good idea to change search paths. I saw in the code where those paths were, so might make the switch.
Keep in mind that the "Plugins" location is searched (including subdirs) for possible plugins.
It is better to patch the source to look only for existing plugins (Exporting, Importing, Scheduling, Rendering),
ignoring subdirs. Look at how I changed CIFXComponentManager::FindPlugins routine in my version.
> I know this all sounds weird and difficult to get through, but it is a prime example of how hard it is to develop within a government house.
Well, in my case it looks differently - my state university often does not provide necessary equipment, but at least it does not stop me from using my own to get the job done. Liberate yourself, bring your notebook to work! (Oh, but I guess it is likely prohibited and reading this message will make your security people to raise the idea of random checks of entering and leaving employees for swallowed USB Flash drives in their guts :( ;) BTW, a friend of mine worked at a commercial entity that _obliged_ all to bring their personal notebook PCs - to avoid taking responsibility for use of "liberated" software.