🎄teratailクリスマスプレゼントキャンペーン2024🎄』開催中!

\teratail特別グッズやAmazonギフトカード最大2,000円分が当たる!/

詳細はこちら
Linux

Linuxは、Unixをベースにして開発されたオペレーティングシステムです。日本では「リナックス」と呼ばれています。 主にWebサーバやDNSサーバ、イントラネットなどのサーバ用OSとして利用されています。 上位500のスーパーコンピュータの90%以上はLinuxを使用しています。 携帯端末用のプラットフォームAndroidは、Linuxカーネル上に構築されています。

Eclipse

Eclipseは、IBM社で開発された統合開発環境のひとつです。2001年11月にオープンソース化されました。 たくさんのプラグインがあり自由に機能を追加をすることができるため、開発ツールにおける共通プラットフォームとして位置づけられています。 Eclipse自体は、Javaで実装されています。

C++

C++はC言語をもとにしてつくられた最もよく使われるマルチパラダイムプログラミング言語の1つです。オブジェクト指向、ジェネリック、命令型など広く対応しており、多目的に使用されています。

Q&A

解決済

1回答

2144閲覧

C++開発でLinux環境下のEclipseのリンカー設定がうまくいかない

kdaro

総合スコア1

Linux

Linuxは、Unixをベースにして開発されたオペレーティングシステムです。日本では「リナックス」と呼ばれています。 主にWebサーバやDNSサーバ、イントラネットなどのサーバ用OSとして利用されています。 上位500のスーパーコンピュータの90%以上はLinuxを使用しています。 携帯端末用のプラットフォームAndroidは、Linuxカーネル上に構築されています。

Eclipse

Eclipseは、IBM社で開発された統合開発環境のひとつです。2001年11月にオープンソース化されました。 たくさんのプラグインがあり自由に機能を追加をすることができるため、開発ツールにおける共通プラットフォームとして位置づけられています。 Eclipse自体は、Javaで実装されています。

C++

C++はC言語をもとにしてつくられた最もよく使われるマルチパラダイムプログラミング言語の1つです。オブジェクト指向、ジェネリック、命令型など広く対応しており、多目的に使用されています。

0グッド

0クリップ

投稿2021/02/17 10:57

編集2021/02/17 11:09

前提・実現したいこと

CentOS7のEclipse環境下で、C++をつかいDBアクセスプログラムを作成したいです。

プログラムとしてはほぼできているのですが、
Linux環境ははじめてでWindowsとは違っていてEclipseへのリンカの設定が困っています。
環境
CentaOS7
Eclipse(2019-03(4.11.0))
postgreSQL9.5

発生している問題・エラーメッセージ

`PQsetdbLogin' に対する定義されていない参照です がでたため、 project ->C/C++ Build ->Settings -> GCC C++ Linker->Libraries に /usr/pgsql-9.5/lib/libpq.so.5 をLibraries(-l)に登録すると /usr/bin/ld: -l/usr/pgsql-9.5/lib/libpq.so.5 が見つかりません となります。 実際に見てみると、 libpq.so.5 -> libpq.so.5.8 だったので、同様に /usr/pgsql-9.5/lib/libpq.so.5.8 でもだめでした。 libpq.so は /usr/lib/ /usr/lib64/ にもありましたので設定してみましたが /usr/bin/ld: -l/usr/pgsql-9.5/lib/libpq.so.5 が見つかりません 同等のメッセージでした。 見ている場所が違うのか設定が足りないのか 教えていただけると助かります。

該当のソースコード

ソースコード以前の問題のため、該当なし。

補足情報(FW/ツールのバージョンなど)

gcc (GCC) 4.8.5 20150623 (Red Hat 4.8.5-44)
g++ (GCC) 4.8.5 20150623 (Red Hat 4.8.5-44)

ここにより詳細な情報を記載してください。

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

m.ts10806

2021/02/17 11:00 編集

「DBアクセスプログラムをC++で作る」ということで良いでしょうか。
kdaro

2021/02/17 11:02

言葉が足りず申し訳ありません。 その通りです。
m.ts10806

2021/02/17 11:04

質問調整されたほうが良いと思います。質問は修正できます。
guest

回答1

0

ベストアンサー

ライブラリのリンクは-Lでパス名の指定、-lでライブラリ名の指定だと思います。この場合は、-L/usr/pgsql-9.5/lib/ -lpq になります。パス名は環境変数LIBRARY_PATHで指定もできます。ライブラリ名はlib(name).s.oとしたら-lnameで指定します。

投稿2021/02/17 21:42

Serbonis

総合スコア586

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

kdaro

2021/02/17 23:28

回答ありがとうございます。その通りでした。 -Lに当たる箇所に /usr/pgsql-9.5/lib/ -lに当たる箇所は pq (libpq.so~)と設定してうまくいきました。 このあたりをもう少し勉強しようと思います。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.36%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問