Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/cplusplus/155.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/cmake/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C++ C++;到main.cpp的共享库_C++_Cmake_Shared Libraries - Fatal编程技术网

C++ C++;到main.cpp的共享库

C++ C++;到main.cpp的共享库,c++,cmake,shared-libraries,C++,Cmake,Shared Libraries,我正在尝试使用CMake将共享库包含在我的主应用程序中 我用这个例子 但它不起作用。我得到了所有函数调用的未定义引用 我的目录树如下所示: **folder** | **project folder** | | | |_main.cpp |_ | |_CMakeLists.txt | | | **lib** |_**lib1** |_CMakeLists.txt |_liblib1.so

我正在尝试使用CMake将共享库包含在我的主应用程序中

我用这个例子 但它不起作用。我得到了所有函数调用的未定义引用

我的目录树如下所示:

**folder**
| **project folder**
|      | 
|      |_main.cpp
       |_
|      |_CMakeLists.txt
|      |
| **lib**
     |_**lib1**
          |_CMakeLists.txt
          |_liblib1.so
          |_**src**
               |_lib1.cpp
          |_**include**
               |_lib1.h      
这是我的项目
CMakeLists.txt

cmake_minimum_required(VERSION 3.14)
project(DAL_project)

set(CMAKE_CXX_STANDARD 17)
set(GCC_COVERAGE_COMPILE_FLAGS "-lpq")
set(GCC_COVERAGE_LINK_FLAGS    "-lpq")

include_directories(/usr/include)
include_directories(-I/home/yaodav/Desktop/git_repo/lib/internal/conn2/include/)
SET(CMAKE_CXX_FLAGS  "${CMAKE_CXX_FLAGS} ${GCC_COVERAGE_COMPILE_FLAGS}")
SET(CMAKE_EXE_LINKER_FLAGS  "${CMAKE_EXE_LINKER_FLAGS} ${GCC_COVERAGE_LINK_FLAGS}")
SET(SOURCE_FILES main.cpp  SymbolInfo.cpp SymbolInfo.h SymbolDAL.cpp SymbolDAL.h AppSettingDAL.cpp AppSettingDAL.h AppSetting.cpp AppSetting.h)
add_executable(DAL_project ${SOURCE_FILES} )
我正在尝试将这些行添加到
CMakeLists.txt
中,但它不起作用:

target_link_libraries(DAL_project conlibcon.so)
add_library(libconnlib SHARED IMPORTED -L../lib/internal/conn1)
如果这不起作用,试着这样做 添加库(库名共享导入) 设置\u属性(目标库\u名称属性导入\u位置完整\u路径\u到\u库)


将lib添加到目标链接库,将include文件添加到include目录

在何处添加这些行?在最后?我编辑了答案。重复问题中描述了接受的答案。
project(DAL_project)

set(CMAKE_CXX_STANDARD 17) 
set(GCC_COVERAGE_COMPILE_FLAGS "-lpq") 
set(GCC_COVERAGE_LINK_FLAGS "-lpq")

include_directories(/usr/include) 
include_directories(/home/yaodav/Desktop/git_repo/lib/internal/conn2/include) 
link_directories(/lib/internal/conn1 )
SET(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} ${GCC_COVERAGE_COMPILE_FLAGS}") 
SET(CMAKE_EXE_LINKER_FLAGS "${CMAKE_EXE_LINKER_FLAGS} ${GCC_COVERAGE_LINK_FLAGS}") 
SET(SOURCE_FILES main.cpp SymbolInfo.cpp SymbolInfo.h SymbolDAL.cpp SymbolDAL.h AppSettingDAL.cpp AppSettingDAL.h AppSetting.cpp AppSetting.h) 
add_executable(DAL_project ${SOURCE_FILES} )
target_link_libraries(DAL_project connlib)