VC6 Project dependencies and project configurations
-
I am having difficulties getting VC 6 to honor the dependencies between projects with different configurations. Here is what I am running into: Project Main has 3 confugrations * C1 * C2 * C3 Project Sub has 2 of the 3 Main configurations * C1 * C3 When I go to build Main project C2, which is trying to link with Sub project C3, VC insists on building Sub project C1 instead of C3. I have searched high and low for a way to specify this, w/o any luck (obviously). I have the dependencies set up properly using the dependencies dialog. In the project settings, there is a check box for "Allow per-configuration dependencies" but that seems to operate on files, not on projects. Please help :doh:
-
I am having difficulties getting VC 6 to honor the dependencies between projects with different configurations. Here is what I am running into: Project Main has 3 confugrations * C1 * C2 * C3 Project Sub has 2 of the 3 Main configurations * C1 * C3 When I go to build Main project C2, which is trying to link with Sub project C3, VC insists on building Sub project C1 instead of C3. I have searched high and low for a way to specify this, w/o any luck (obviously). I have the dependencies set up properly using the dependencies dialog. In the project settings, there is a check box for "Allow per-configuration dependencies" but that seems to operate on files, not on projects. Please help :doh:
Was the set active project specified?
Still Alive!!! Thank you God.
-
I am having difficulties getting VC 6 to honor the dependencies between projects with different configurations. Here is what I am running into: Project Main has 3 confugrations * C1 * C2 * C3 Project Sub has 2 of the 3 Main configurations * C1 * C3 When I go to build Main project C2, which is trying to link with Sub project C3, VC insists on building Sub project C1 instead of C3. I have searched high and low for a way to specify this, w/o any luck (obviously). I have the dependencies set up properly using the dependencies dialog. In the project settings, there is a check box for "Allow per-configuration dependencies" but that seems to operate on files, not on projects. Please help :doh:
Not quite sure, but it sounds like your build targets don't have identical names. That makes VC guess as to which targets really need to be build. For example, if Project A has a ReleaseMinSize target, and depends on Project B which has a Release target, when you build A, VC will guess that you want B:Release built too. If the names are different enough, it may guess wrong. If you can't change the names, go to Build->Batch Build and select the target(s) you need built. --Mike-- Personal stuff:: Ericahist | Homepage Shareware stuff:: 1ClickPicGrabber | RightClick-Encrypt CP stuff:: CP SearchBar v2.0.2 | C++ Forum FAQ Actual sign at the laundromat I go to: "No tinting or dying."
-
Not quite sure, but it sounds like your build targets don't have identical names. That makes VC guess as to which targets really need to be build. For example, if Project A has a ReleaseMinSize target, and depends on Project B which has a Release target, when you build A, VC will guess that you want B:Release built too. If the names are different enough, it may guess wrong. If you can't change the names, go to Build->Batch Build and select the target(s) you need built. --Mike-- Personal stuff:: Ericahist | Homepage Shareware stuff:: 1ClickPicGrabber | RightClick-Encrypt CP stuff:: CP SearchBar v2.0.2 | C++ Forum FAQ Actual sign at the laundromat I go to: "No tinting or dying."
Hi Michael. The way I have it set up is my main project (Main) has 3 configurations: Internal, External, and Eval (internal is a private build for our company, external is the version we sell to the outside world, eval is a demo/trial build). Main is dependant on Sub (a dll/lib pair). Sub only has 2 configurations: Full and Eval. It doesn't make a distinction between Internal and External because there is no need to. So, Main-Eval should link with Sub-Eval, and that is working just fine. And Main-Internal is linking properly with Sub-Full. The problem is that when I go to build Main-External, VC thinks it is dependant on Sub-Eval. In Main-External's project settings, I have it linking with the Sub-Full.lib, which I don't think VC is paying any attention to... it is just taking a guess at which of the two Sub configurations Main-External is dependant on. I was hoping that the "Allow per-configuration dependencies" check box in the project settings would alleviate this, but it doesn't. If it is not possible to do something like this, let me know. It would be a bummer, but at least I would stop cursing MS up and down as I have been for the past week. Thanks. D
-
Hi Michael. The way I have it set up is my main project (Main) has 3 configurations: Internal, External, and Eval (internal is a private build for our company, external is the version we sell to the outside world, eval is a demo/trial build). Main is dependant on Sub (a dll/lib pair). Sub only has 2 configurations: Full and Eval. It doesn't make a distinction between Internal and External because there is no need to. So, Main-Eval should link with Sub-Eval, and that is working just fine. And Main-Internal is linking properly with Sub-Full. The problem is that when I go to build Main-External, VC thinks it is dependant on Sub-Eval. In Main-External's project settings, I have it linking with the Sub-Full.lib, which I don't think VC is paying any attention to... it is just taking a guess at which of the two Sub configurations Main-External is dependant on. I was hoping that the "Allow per-configuration dependencies" check box in the project settings would alleviate this, but it doesn't. If it is not possible to do something like this, let me know. It would be a bummer, but at least I would stop cursing MS up and down as I have been for the past week. Thanks. D
In case anybody is interested... i figured this out (it wasn't easy). VC tries to do a name match between project configurations. If one project is dependant on another, and the other project doesn't have a configuration with an exact name match as the dependant one, it will do a "best guess" name match. In my case, my main project configurations were: Main - Win32 Main - Win32 External Main - Win32 Eval Sub - Win32 Sub - Win32 Eval When compiling, Main - Win32 External, it looked at all the configs in Sub to try and find a match. Since it couldn't, it picked the closest match, which was Sub - Win32 Eval, and tried to compile it (which is not what I wanted). So I changed the names to: Main - Win32 Exec Main - Win32 External Main - Win32 Demo Sub - Win32 Exec Sub - Win32 Demo and everything worked beautifully. Now when compiling Main External, it will find that the config name matches more closely to Sub Exec then Sub Demo. One of those undocumented features, I guess.