ROS Resources: Documentation | Support | Discussion Forum | Index | Service Status | ros @ Robotics Stack Exchange
Ask Your Question

Revision history [back]

Whenever the compilation gives you a linker error, it will tell you which library it didn't find (like "-yaml-cpp"). grep for that specific library (such as "grep -r -yaml-cpp *"), look for a .txt file that contains that switch, and replace it ("-yaml-cpp") for whatever "pkg-config --libs [lib name]" gives you (like "pkg-config --libs yaml-cpp", which gives you -L/usr/local/Cellar/yaml-cpp/0.5.0/lib -lyaml-cpp).

The reason for this is that for some reason the CMake files for ROS do not use the correct way to tell the linker where the libraries are ("-L[lib name]"), at least for a clean OSX as far as I know.

Whenever the compilation gives you a linker error, it will tell you which library it didn't find (like "-yaml-cpp"). "-yaml-cpp"). grep for that specific library (such as "grep "grep -r -yaml-cpp *"), *"), look for a .txt file that contains that switch, and replace it ("-yaml-cpp") ("-yaml-cpp") for whatever "pkg-config "pkg-config --libs [lib name]" name]" gives you (like "pkg-config "pkg-config --libs yaml-cpp", yaml-cpp", which gives you "-L/usr/local/Cellar/yaml-cpp/0.5.0/lib -lyaml-cpp).-lyaml-cpp").

The reason for this is that for some reason the CMake files for ROS do not use the correct way to tell the linker where the libraries are ("-L[lib name]"), ("-L[lib name]"), at least for a clean OSX as far as I know.

Whenever the compilation gives you a linker error, it will tell you which library it didn't find (like "-yaml-cpp"). ").

grep for that specific library (such as "grep -r -yaml-cpp *"), look for a .txt file that contains that switch, and replace it ("-yaml-cpp") for whatever "pkg-config --libs [lib name]" gives you (like "pkg-config --libs yaml-cpp", which gives you "-L/usr/local/Cellar/yaml-cpp/0.5.0/lib -lyaml-cpp").

The reason for this is that for some reason the CMake files for ROS do not use the correct way to tell the linker where the libraries are ("-L[lib name]"), at least for a clean OSX as far as I know.

PS: there was one exception: -lOgreMain

pkg-config couldn't find the library "ogre", so I had to find it manually. The library was in

"(-L)/usr/local/Cellar/ogre/lib (-lOgreMain)"

Whenever the compilation gives you a linker error, it will tell you which library it didn't find (like "-yaml-cpp").

grep for that specific library (such as "grep -r -yaml-cpp *"), look for a .txt file that contains that switch, and replace it ("-yaml-cpp") for whatever "pkg-config --libs [lib name]" gives you (like "pkg-config --libs yaml-cpp", which gives you "-L/usr/local/Cellar/yaml-cpp/0.5.0/lib -lyaml-cpp").

The reason for this is that for some reason the CMake files for ROS do not use the correct way to tell the linker where the libraries are ("-L[lib name]"), at least for a clean OSX as far as I know.

PS: there was one exception: -lOgreMain

pkg-config couldn't find the library "ogre", so I had to find it manually. The library was in

"(-L)/usr/local/Cellar/ogre/lib (-lOgreMain)"

PPS: there was one more exception: -llog4cxx

the package was in

"(-L)/usr/local/Cellar/log4cxx/0.10.0/lib/ (-llog4cxx)"

Whenever the compilation gives you a linker error, it will tell you which library it didn't find (like "-yaml-cpp").

grep for that specific library (such as "grep -r -yaml-cpp *"), look for a .txt file that contains that switch, and replace it ("-yaml-cpp") for whatever "pkg-config --libs [lib name]" gives you (like "pkg-config --libs yaml-cpp", which gives you "-L/usr/local/Cellar/yaml-cpp/0.5.0/lib -lyaml-cpp").

After you do that, build using the command given to you by the error message (the one to reproduce the error) since this command will build the package without remaking the makefile.

The reason for this is that for some reason the CMake files for ROS do not use the correct way to tell the linker where the libraries are ("-L[lib name]"), at least for a clean OSX as far as I know.

PS: there was one exception: -lOgreMain

pkg-config couldn't find the library "ogre", so I had to find it manually. The library was in

"(-L)/usr/local/Cellar/ogre/lib (-lOgreMain)"

PPS: there was one more exception: -llog4cxx

the package was in

"(-L)/usr/local/Cellar/log4cxx/0.10.0/lib/ (-llog4cxx)"