小编bl6*_*515的帖子

使用 Autotools 生成 .so 文件

我想使用 Autotools 来创建 .so 文件,以便我可以使用 dlsym 加载它。我读过一些类似的主题,但没有一个建议的解决方案对我有用。这是我所拥有的:

我想将一个简单的 hello.cpp 编译为 .so。

配置文件

    AC_INIT(My Project, 0.1, my@email, myproject)
    AC_PREREQ(2.68)
    AC_COPYRIGHT(GNU General Public License)
    AM_CONFIG_HEADER([config.h])
    AC_PROG_CXX
    AM_INIT_AUTOMAKE([1.9 foreign])
    AC_CONFIG_FILES(Makefile)
    AC_ENABLE_SHARED
    AC_DISABLE_STATIC
    LT_INIT
    AC_OUTPUT
Run Code Online (Sandbox Code Playgroud)

生成文件.am

    lib_LTLIBRARIES = libtest.la
    libtest_la_SOURCES = hello.cpp
    libtest_la_LDFLAGS = -version-info 0:0:0
Run Code Online (Sandbox Code Playgroud)

我从这里得到了这个想法,但是当我输入时:

    autoreconf -i
    ./configure
    make
Run Code Online (Sandbox Code Playgroud)

我得到一个 libtest.la 文件,但遗憾的是没有 .so 文件。如果有帮助的话,这就是我通常将 hello.cpp 编译成 hello.so 的方式:

    g++ -Wall -shared -rdynamic -fPIC hello.cpp -o hello.so
Run Code Online (Sandbox Code Playgroud)

如果有人告诉我我做错了什么,我将不胜感激,以便我最终得到 .so 文件。

c++ makefile autotools shared-libraries

5
推荐指数
1
解决办法
1071
查看次数

标签 统计

autotools ×1

c++ ×1

makefile ×1

shared-libraries ×1