1. ホーム
  2. c++

[解決済み] Linux c++ エラー: 'dlopen' への未定義の参照

2022-04-21 18:38:31

質問

LinuxでC++(Eclipse)を使って仕事をしているのですが、あるライブラリを使いたいのです。 Eclipseではエラーが表示されます。

undefined reference to 'dlopen' 

解決策をご存知ですか?

以下は私のコードです。

#include <stdlib.h>
#include <stdio.h>
#include <dlfcn.h>

int main(int argc, char **argv) {
    void *handle;
    double (*desk)(char*);
    char *error;

    handle = dlopen ("/lib/CEDD_LIB.so.6", RTLD_LAZY);
    if (!handle) {
        fputs (dlerror(), stderr);
        exit(1);
    }

    desk= dlsym(handle, "Apply");

    if ((error = dlerror()) != NULL)  {
        fputs(error, stderr);
        exit(1);
    }

    dlclose(handle);
}

解決方法は?

libdlに対してリンクする必要があります。

<ブロッククオート

-ldl

をリンカーオプションに追加します。