1

次のディレクトリ構造から始めました。

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として見つけることができます.alib

4

1 に答える 1