如何解决创建一个共享库并在另一个项目中使用它
.
├── include
│ ├── common.h
│ ├── os.h
│ ├── helper.h
│
├── lib
| ├── libcrypto.so
│ ├── libssl.so
| ├── ...
|
└── src
├── common.c
├── helper.c
现在我想为整个项目创建一个共享库或任何类型的库,以便我可以在其他一些完全独立于这个项目的 C++ 项目中包含 helper.h 头文件,并调用在这个头文件中声明的一些函数。
>我尝试使用以下 CMakeLists 文件制作共享库:
cmake_minimum_required(VERSION 3.0)
project(helperlib)
link_directories(lib)
file(GLOB SOURCES src/*.c)
include_directories(include)
add_library(${PROJECT_NAME} SHARED ${SOURCES})
install(TARGETS ${PROJECT_NAME} DESTINATION lib/${PROJECT_NAME})
file(GLOB HEADERS include/*.h)
install(FILES ${HEADERS} DESTINATION include/${PROJECT_NAME})
但是当我在另一个项目中使用 cmake 生成的 libhelperlib.so 文件并使用 #include "helper.h" 时,它给了我错误。 任何人都可以建议如何做到这一点。 谢谢!
编辑: 这是另一个项目的结构:
.
├── include
│ ├── constants.h
│ ├── datetime.h
│ ├──
│
├── lib
| ├── libhelperlib.so
│ ├── libboost_system.so
| ├── liboost_system.a
|
└── src
├── constants.c
├── datetime.c
├── main.c
我使用的 CMakeLists.txt 是:
cmake_minimum_required(VERSION 3.0)
project(testProj)
include_directories(include)
link_directories(lib)
file(GLOB SOURCES src/*.c)
file(GLOB HEADERS include/*.h)
add_executable(testProj ${SOURCES} ${HEADERS})
target_link_libraries(testProj crypto helperlib boost_system)
当我在 main .c 中使用 #include "helper.h" 时,它会出现以下错误:
Fatal error: helper.h: No such file or directory
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。