linux - 如何将 expat 链接到项目中

标签 linux ubuntu cmake

我的项目依赖于 expat。我的问题是我无法链接到 expat。我使用的是Ubuntu(debian环境),需要使用cmake来构建makefile。

我尝试下载源代码并在我的 CMakeLists.txt 中链接到它:

include_directories(
...
${CMAKE_SOURCE_DIR}/expat-2.1.0/lib
...
) 

我尝试移动 .c 文件并单独链接到它们:

add_executable(${PROJECT_NAME}
...
src/xmlrole.c
src/xmltok.c
src/xmltok_impl.c
src/xmltok_ns.c
src/xmlparse.c
...
)

虽然这不起作用,并且在链接时在 xmlparse.c 中出现错误

有人知道如何在 CMakeLists.txt 文件中正确链接库吗?是否需要下载源代码并链接到文件本身(我无法开始工作)?

是否需要下载源代码或者是否可以链接到运行“sudo apt-get install expat”时创建的“.so - 文件”?

最佳答案

如果您不需要最新的 expat 版本,您应该能够使用 sudo apt-get install expat

如果你想要最新版本,download the source并提取它。然后:

cd <expat root>
mkdir build && cd build
cmake .. -DCMAKE_INSTALL_PREFIX=/usr  (default install path is /usr/local)
make
sudo make install

安装后,您可以使用 CMake 的 FindEXPAT module 找到它.

例如,

cmake_minimum_required(VERSION 2.8 FATAL_ERROR)
project(MyTest)
include(FindEXPAT)
find_package(EXPAT REQUIRED)
include_directories(${EXPAT_INCLUDE_DIRS})
add_executable(${PROJECT_NAME} <list of your source files>)
target_link_libraries(${PROJECT_NAME} ${EXPAT_LIBRARIES})

关于linux - 如何将 expat 链接到项目中,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10860366/

相关文章:

ubuntu - 如何在 emacs 27、ubuntu 18 上启动 emacsclient

wordpress - 在我的本地系统中配置 wordpress 时出现下面提到的错误

cmake - OBJECT 库上的可传递 target_include_directories

c# - Linux 重叠 I/O TCP 套接字服务器未正确响应 C# 异步客户端

linux - 如何将单个目录中的所有文件移动到多个目录?

c++ - 浮点计数指令

linux - 加载共享库 : libncurses. so.5 时出错:

c++ - 不能包含/usr/include/linux 文件

cmake - 通过命令提示符将参数传递给 CMAKE

c - 如何检查线程安全函数?