teratail header banner
teratail header banner
質問するログイン新規登録

質問編集履歴

2

微修正

2017/12/15 02:37

投稿

Himatya1
Himatya1

スコア11

title CHANGED
@@ -1,1 +1,1 @@
1
- -Lオプションを付けるとライブラリのリンクができない
1
+ -Lオプションをパス付けるとライブラリのリンクができない
body CHANGED
@@ -31,4 +31,4 @@
31
31
  ##質問
32
32
  Projucerで何度も設定を変更する可能性があるため、変更を適用するたびに自動生成されるCMakeLists.txtを手動で編集することは避けたいです。
33
33
 
34
- そこで、**`target_link_libraries`を使って`-L`でディレクトリ指定する**という条件を満たした上で、ライブラリをリンクするにはどうすればよいでしょうか?
34
+ そこで、**`target_link_libraries`を使って`-L`オプションを指定する**という条件を満たした上で、ライブラリをリンクするにはどうすればよいでしょうか?

1

質問内容を明確にしました。

2017/12/15 02:37

投稿

Himatya1
Himatya1

スコア11

title CHANGED
@@ -1,1 +1,1 @@
1
- ライブラリのディレクトパスを指定するとリンクできなくなる
1
+ -Lオプションを付けるとライブラリのリンクできな
body CHANGED
@@ -1,8 +1,17 @@
1
+ 現在、ProjucerとCLionを使って開発しています。
2
+
3
+ Projucerとは、ソースファイルを様々な環境でビルドできるようにIDE用のプロジェクトファイルを生成してくれるツールです。
4
+ また、必要なライブラリを指定すると、プロジェクトファイルにも設定されるようになります。
5
+ ProjucerでCLion用にプロジェクトファイルを生成すると、CMakeLists.txtが自動生成されます。
6
+
1
7
  ##問題
2
- 自作のスタティックライブラリを`target_link_libraries`を使ってリンクしようとしました。
3
- ライブラリの絶対パスで指定するとリンクできるのですが、
4
- `-L`を使ってデごとリンクしようとするときませんでした。
8
+ 自作のスタテライブラリンクしようとしたので上手くいきませんでした。
5
9
 
10
+ CMakeLists.txt中身をみると、`target_link_libraries(proj PRIVATE -L[追加したライブラリ...])`といった形式でライブラリが追加されていました。
11
+
12
+ そこで、ライブラリを使っている部分だけを切り出し、別プロジェクトで試したところ、
13
+ 絶対パスを指定した場合のみリンクができました。
14
+
6
15
  ```CMake
7
16
  #/lib/lib.aをリンクしたい(/libの中身はlib.aのみ)
8
17
  #これはリンクできる
@@ -20,6 +29,6 @@
20
29
  ```
21
30
 
22
31
  ##質問
23
- CMakeList.txt別IDEから自動生成されるため、
32
+ Projucerで何度も設定を変更する可能性あるため、変更を適用するたびに自動生成されるCMakeLists.txtを手動で編集することは避けいです。
33
+
24
- `target_link_libraries`を使って`-L`でディレクトリ指定するという条件を満たした上で、
34
+ そこで、**`target_link_libraries`を使って`-L`でディレクトリ指定する**という条件を満たした上で、ライブラリをリンクするにはどうすればよいでしょうか?
25
- ライブラリをリンクしたいです。