次のディレクトリ構造から始めました。
project
exec
executable.exe
lib
src
include
config
<cmake-generated config file>
lib/src
フォルダー内の CMakefile を使用して、フォルダー内にライブラリを作成しましたlib/src
。exeがコンパイルされます。
次に、CMakeFile を に移動し/lib
、ソース ファイル パスを に変更したことを確認しました/src/*
。コンパイルしようとすると、すべてのライブラリが正常にコンパイルおよびリンクされますが、実行可能ファイルをリンクしようとすると、/usr/bin/ld: cannot find -lconfig
.
なぜこれが起こるのか、またはそれを修正する方法を知っている人はいますか?
これが私のコードの一部です:
./CMakeLists.txt:
include_directories(config)
SET(EXECUTABLE_OUTPUT_PATH ${PROJECT_BINARY_DIR}/bin)
SET(LIBRARY_OUTPUT_PATH ${PROJECT_BINARY_DIR}/lib)
ADD_SUBDIRECTORY(libs) #library sources
ADD_SUBDIRECTORY(exec) #executable sources
CONFIGURE_FILE(${core_SOURCE_DIR}/config/config.h.in
${core_SOURCE_DIR}/config/config.h)
./libs/CMakeLists.txt:
file(GLOB src ...)
file(GLOB header ...)
add_library(lib ${src} ${header})
./exec/CMakeLists:
add_executable(executable executable.cpp)
link_directories(${core_SOURCE_DIR}/lib) #not sure if this is required
target_link_libraries(executable ${lots_of_libs})
のすべてのライブラリは、ディレクトリ内のファイルlots_of_libs
として見つけることができます.a
lib