问题描述
.
├── 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 (将#修改为@)