【发布时间】:2014-12-08 10:58:54
【问题描述】:
我有一组文件想要制作成一个库,然后在另一个项目中使用该库。这就是现在的样子
cmake_minimum_required(VERSION 2.8)
aux_source_directory(. SRC_LIST)
SET(CMAKE_CXX_FLAGS "-std=c++11 -fopenmp -fPIC")
add_library (helperlibs lib1.cpp lib2.cpp lib3.cpp lib4.cpp )
INSTALL(TARGETS helperlibs
DESTINATION "${HOME}/lib"
)
INSTALL(FILES lib1.h lib2.h lib3.h lib4.h helperheader.h
DESTINATION "${HOME}/include/helperlibs"
)
在此代码中,Lib4 取决于 Lib1-3 和 Lib3 取决于 Lib1-2 和 Lib2 取决于 Lib1。这些 cpp 文件中的每一个还依赖于包含一些定义和结构的 helperheader.h 文件。
在我的项目中,我有以下 CMake 文件
cmake_minimum_required(VERSION 2.8)
aux_source_directory(. SRC_LIST)
SET( CMAKE_CXX_FLAGS "-std=c++11 -fopenmp -fPIC")
SET(MYINCS ${HOME}/include/helperlibs)
SET(MYLIBDIR ${HOME}/lib)
SET(MYLIBS ${MYLIBDIR}/libhelperlibs.a )
include_directories(${MYINCS})
add_executable(main main.cpp)
target_link_libraries(main ${MYLIBS})
所以我想知道如果你想创建一个静态库并使用 cmake 从另一个项目链接到你应该这样写吗?
【问题讨论】:
-
您是遇到什么问题,还是只是问问?
-
我遇到了一些问题,而且有点菜鸟,我不确定这是否取决于我构建库及其依赖项的方式,或者它是否在某个地方的代码中。
-
不过,您应该发布您遇到的问题。如果我们不知道什么?,我们如何为您提供帮助?
-
所以我要问的是,如果你想创建一个静态库并使用 cmake 从另一个项目链接到这是你应该编写它的方式,还是我错过了一些关键点。我可以编辑问题以反映这一点。
-
是的,这是解决此问题的一种方式。但是拜托,如果您需要帮助解决一些问题,请发布这些问题。
标签: c++ linker cmake static-libraries