Ask Your Question

Revision history [back]

click to hide/show revision 1
initial version

rosbuild and static libraries

I have the following problem.

Package A is builds a static executable that dependent on packages B and C, where B and C build static libraries. I have explicitly modified my rosconfig.cmake to build static libraries and executables.

Package A is a very simple package that has a simple main() function and links against B and C.

If I go into package B and edit a .c file, and then do a rosmake packageC, the build system does indeed build the .c file into a new .a file when the rosmake packageB runs. But it seems there is no way to tell packageC that it should be dependent on the .a file that is made by packageB so that if it sees a new .a file it should relink packageC.

rosbuild and static libraries

I have the following problem.

Package A is builds a static executable that is dependent on packages B and C, where B and C build static libraries. I have explicitly modified my rosconfig.cmake to build static libraries and executables.

Package A is a very simple package that has a simple main() function and links against B and C.

If I go into package B and edit a .c file, and then do a rosmake packageC, the build system does indeed build the .c file into a new .a file when the rosmake packageB runs. But it seems there is no way to tell packageC that it should be dependent on the .a file that is made by packageB so that if it sees a new .a file it should relink packageC.

rosbuild and static libraries

I have the following problem.

Package A builds a static executable that is dependent on packages B and C, where B and C build static libraries. I have explicitly modified my rosconfig.cmake to build static libraries and executables.

Package A is a very simple package that has a simple main() function and links against B and C.

If I go into package B and edit a .c file, and then do a rosmake packageC, the build system does indeed build the .c file into a new .a file when the rosmake packageB runs. But it seems there is no way to tell packageC that it should be dependent on the .a file that is made by packageB so that if it sees a new .a file it should relink packageC.

Is it true that the ROS "dependency" system is not able to specify dependencies at the library level when using static libraries?

rosbuild and static libraries

I have the following problem.problem. I am trying to use the excellent ros build system for a project not related to ROS. But I'm having troubles with the build system with regard to static libraries and executables.

Package A builds a static executable that is dependent on packages B and C, where B and C build static libraries. I have explicitly modified my rosconfig.cmake to build static libraries and executables.

Package A is a very simple package that has a simple main() function and links against B and C.

If I go into package B and edit a .c file, and then do a rosmake packageC, the build system does indeed build the .c file into a new .a file when the rosmake packageB runs. But it seems there is no way to tell packageC that it should be dependent on the .a file that is made by packageB so that if it sees a new .a file it should relink packageC.

Is it true that the ROS "dependency" system is not able to specify dependencies at the library level when using static libraries?

rosbuild and static libraries

I have the following problem. I am trying to use the excellent ros build system for a project not related to ROS. But I'm having troubles with the build system with regard to static libraries and executables.

Package A builds a static executable that is dependent on packages B and C, where B and C build static libraries. I have explicitly modified my rosconfig.cmake to build static libraries and executables.

Package A is a very simple package that has a simple main() function and links against B and C.

If I go into package B and edit a .c file, and then do a rosmake packageC, the build system does indeed build the .c file into a new .a file when the rosmake packageB runs. But it seems there is no way to tell packageC that it should be dependent on the .a file that is made by packageB so that if it sees a new .a file it should relink packageC.packageC. Even though the build system was smart enough to go down to packageB and rebuild the .c file into a .a file, it seems it is not smart enough to inform packageC that it has to relink against the new .a file.

Is it true that the ROS "dependency" system is not able to specify dependencies at the library level when using static libraries?libraries? Or am I just crazy!

rosbuild and static libraries

I have the following problem. I am trying to use the excellent ros build system for a project not related to ROS. But I'm having troubles with the build system with regard to static libraries and executables.

Package A builds a static executable that is dependent on packages B and C, where B and C build static libraries. I have explicitly modified my rosconfig.cmake to build static libraries and executables.

Package A is a very simple package that has a simple main() function and links against B and C.

If I go into package B and edit a .c file, and then do a rosmake packageC, packageA, the build system does indeed build the .c file into a new .a file when the rosmake packageB runs. But it seems there is no way to tell packageC packageA that it should be dependent on the .a file that is made by packageB so that if it sees a new .a file it should relink packageC. Even though the build system was smart enough to go down to packageB and rebuild the .c file into a .a file, it seems it is not smart enough to inform packageC packageA that it has to relink against the new .a file.

Is it true that the ROS "dependency" system is not able to specify dependencies at the library level when using static libraries? Or am I just crazy!

click to hide/show revision 7
Replaced "packageC" with "packageA" in several places.

rosbuild and static libraries

I have the following problem. I am trying to use the excellent ros build system for a project not related to ROS. But I'm having troubles with the build system with regard to static libraries and executables.

Package A builds a static executable that is dependent on packages B and C, where B and C build static libraries. I have explicitly modified my rosconfig.cmake to build static libraries and executables.

Package A is a very simple package that has a simple main() function and links against B and C.

If I go into package B and edit a .c file, and then do a rosmake packageA, the build system does indeed build the .c file into a new .a file when the rosmake packageB runs. But it seems there is no way to tell packageA that it should be dependent on the .a file that is made by packageB so that if it sees a new .a file it should relink packageC. packageA. Even though the build system was smart enough to go down to packageB and rebuild the .c file into a .a file, it seems it is not smart enough to inform packageA that it has to relink against the new .a file.

Is it true that the ROS "dependency" system is not able to specify dependencies at the library level when using static libraries? Or am I just crazy!

click to hide/show revision 8
minor corrections to make the question clearer, hopefully.

rosbuild and static libraries

I have the following problem. I am trying to use the excellent ros build system for a project not related to ROS. But I'm having troubles with the build system with regard to static libraries and executables.

Package A builds a static executable that is dependent on packages B and C, where B and C build static libraries. I have explicitly modified my rosconfig.cmake to build static libraries and executables.

Package A is a very simple package that has a simple main() function and links against B and C.

If I go into package B and edit a .c file, and then do a rosmake packageA, the build system does indeed build the .c file into a new .a file when the rosmake packageB runs. But it seems there is no way to tell packageA that it should be dependent on the .a file that is made by packageB so that if it sees a new .a file it should relink rebuild packageA. Even though the build system was smart enough to go down to packageB and rebuild recompile the .c file into a .a file, it seems it is not smart enough to inform packageA that it has to relink against the packageB's new .a file.

Is it true that the ROS "dependency" system is not able to specify dependencies at the library level when using static libraries? Or am I just crazy!