【问题标题】:Unable to link created .so file to main.cpp无法将创建的 .so 文件链接到 main.cpp
【发布时间】:2012-06-19 04:04:05
【问题描述】:

美好的一天!我在 Eclipse 中运行一个 c++ 项目 main.cpp。我想使用我现有的 .so 文件并将其链接到 main.cpp。我正在搜索这个,但找不到适合我的方法。我正在使用ubuntu。谢谢你的帮助!

【问题讨论】:

    标签: c++ ubuntu shared-libraries


    【解决方案1】:

    要链接到库,您需要为编译器(或链接器)提供-l 标志和库名称。例如,如果你想链接一个名为 libjustine.so 的库,你需要为你的编译器(如果 C 为 gcc,如果 C++ 为 g++)提供一个标志 -ljustine,然后编译器将指示链接器链接到库路径中的文件 libjustine.so(通常至少为 /usr/lib//usr/local/lib/ )。

    但是,如果您想定义自己的库目录,例如项目目录中的 lib/ 目录,则需要使用 -L 标志并提供所需的库目录(相对到当前目录)这样,例如-L/lib/,因此编译器可以指示链接器从 lib/ 而不是例如 /usr/lib/ em> 默认在哪里查找文件。

    【讨论】:

    • 你能给我一个示例代码吗?例如,我想将 libjustinte.so 链接到 main.cpp。是需要安装 libjustine.so 还是只需将其放在 /usr/lib 或 /usr/local/lib 中?谢谢你的回答!
    • 我不知道您如何在 Eclipse 中定义链接器选项,因此我无法直接回答您的问题。但是,是的,您需要在所谓的库路径中拥有文件 libjustinte.so。例如,这个 通常 包括 /usr/lib 和 /usr/local/lib,所以两者都应该工作。正如我在答案中提到的,您还可以为您的 C 或 C++ 编译器(gcc/g++)提供 -L 标志来定义库的路径,相对于当前目录。
    • 如果我有类似 libv8.so.3.8.9.20 的东西怎么办?它似乎不起作用...... :(
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-01-31
    • 1970-01-01
    • 1970-01-01
    • 2020-12-10
    • 1970-01-01
    相关资源
    最近更新 更多