我有一个小项目,其中有一个Makefile,我试图将其转换为CMake,主要是为了获得使用CMake的经验。在本例中,该项目包含一个源文件(C++,尽管我认为语言并不特别相关)和一个静态库文件,我从其他地方复制了它。出于论证的目的,假定库的源代码不可用;我只有.a文件和相应的头文件。
我的手工制作的Makefile包含以下构建规则:
main: main.o libbingitup.a
g++ -o main main.o libbingitup.a
这个工作很好。我该如何告诉CMake来复现它呢?当然不是字面上的这个makefile,但需要包含等效的链接命令。我尝试了一些显而易见但幼稚的方式,比如:
这个可以正常工作。我要怎么告诉CMake去复制它呢?当然不是字面上的那个makefile,但是需要包括等效的链接命令。我已经尝试了一些显而易见但幼稚的方法,例如
add_executable(main main.cpp libbingitup.a)
或者add_executable(main main.cpp)
target_link_libraries(main libbingitup.a)
我尝试过使用link_directories(.)
或者add_library(bingitup STATIC IMPORTED)
等方法,但是没有成功链接。请问还有什么需要做的吗?
版本信息:CMake 2.8.7在Linux (Kubuntu 12.04)上,使用GCC 4.6.3。
target_include_directories
或include_directories
(前者更为推荐,因为它更加具体),这将使内容更易懂。请参考链接:target_include_directories
和include_directories
。 - Fraser