【问题标题】:How do I link expat into a project如何将外籍人士链接到项目中
【发布时间】:2012-06-07 06:57:54
【问题描述】:

我有一个依赖外籍人士的项目。我的问题是我无法链接到外籍人士。我使用的是 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 - 文件”?

【问题讨论】:

    标签: linux ubuntu cmake


    【解决方案1】:

    如果您不需要最新的 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})
    

    【讨论】:

      【解决方案2】:

      如前所述,您可以使用

      sudo apt-get install expat.

      然后在makefile中使用

      -lexpat

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

      如果安装到不同的路径你必须这样做

      -L path_of_the_library -lexpat

      【讨论】:

        猜你喜欢
        • 2010-11-13
        • 1970-01-01
        • 2017-07-17
        • 2021-08-03
        • 2021-08-06
        • 2021-06-14
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多