Benedikt Bergenthal
Benedikt Bergenthal

Reputation: 505

Cmake not adding library search path

I'm currently changing one of my projects to cmake for portably. Within the project directory I have a folder with an external library called "boclib", which is build by a regular makefile. I need to link my executable to "ProjectDir"/boclib/bin/libboc.a . My current attempt looks like this:

  FIND_LIBRARY(BOCLIB boc ${PROJECT_BINARY_DIR}/boclib/bin)
  Message(${BOCLIB})
  TARGET_LINK_LIBRARIES(prod ${BOCLIB})

The Meassage output yields the correct library:

"AbsulutePathToProjectDir"/boclib/bin/libboc.a

Which outputs this, when linking:

g++ -lm -ldl CMakeFiles/prod.dir/src/BocData.cpp.o CMakeFiles/prod.dir/src/delay.cpp.o     CMakeFiles/prod.dir/src/leoni.cpp.o CMakeFiles/prod.dir/src/main.cpp.o CMakeFiles/prod.dir/src/scope.cpp.o CMakeFiles/prod.dir/src/SerialCom.cpp.o CMakeFiles/prod.dir/src/tester.cpp.o CMakeFiles/prod.dir/src/Utils.cpp.o  -o prod  boclib/bin/libboc.a -lboost_program_options -lboost_system -lboost_filesystem -lboost_serialization -lboc

There is no -L option for the boclib. What am I doing wrong?

Any help will be appreciated.

Upvotes: 0

Views: 869

Answers (1)

Guillaume
Guillaume

Reputation: 10971

It seems there's two occurence of "boc" library in the g++ command you pasted, the first: boclib/bin/libboc.a that should comes from your target_link_libraries call and a second one: -lboc that must come from something else in your CMakeLists.txt.

You don't need that second one, if you find why it's added and remove it, it should be ok.

Upvotes: 1

Related Questions