繁体   English   中英

如何将expat链接到项目中

[英]How do I link expat into a project

我的项目取决于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 - file”?

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

如果您需要最新版本,请下载源并将其解压缩。 然后:

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

安装完成后,您可以使用CMake的FindEXPAT模块找到它。

所以,例如,

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})

如上所述,你可以使用

sudo apt-get install expat。

然后在makefile中

-lexpat

如果存在于$ PATH中,您可以链接到库。

如果安装到您必须执行的其他路径

-L path_of_the_library -lexpat

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM