如何在C++中将`.a`文件导入到CMake?

7

我已经生成了libBox2D.a。现在我想将其导入C++项目,但我不知道如何操作。请问如何使用CMake将我的libBox2D.a导入到我的项目中?


1
嗯...我不认为这个问题太宽泛了。它只涉及一个主题:使用CMake导入libBox2D.a库。 - Szymon Marczak
1个回答

7

试试这个:

find_library(LIBBOX2D Box2D DIRECTORY)

将DIRECTORY替换为libBox2D.a的位置。然后您可以将此库链接到可执行文件:

target_link_libraries(exec ${LIBBOX2D})

然后我可以使用Box2D吗?我需要做#import<Box2D>或类似的事情吗? - Szymon Marczak
在你的CMake文件中,应该写类似于 include_directories(dir) 的内容,其中 dir 应该替换为 Box2D 头文件所在的目录。然后在你的源代码中,你需要根据需要从 Box2D 引入相应头文件,例如 #include <file> 中的 file。 - grigor
那么,我只需要包含源代码(或仅包含头文件?)并链接 libBox2D.a 就可以了吗? - Szymon Marczak
取决于你想做什么。我假设你知道如何使用Box2D。我不太清楚它的作用。这里我的回答是关于如何使用cmake将外部库包含到你的项目中。其余的就由你决定了 - 你想如何使用它以及你想用它编写什么代码。 - grigor
成功了。谢谢! - Szymon Marczak
同样,target_link_libraries(v4l2 /usr/lib/libv4l2wrapper.a)也可以正常工作,无需前缀。 - nerkn

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接