私は共有ライブラリ(.so, .dylib)
をMakefile gccに作成したい) 私のライブラリには他の共有ライブラリからの参照ライブラリ)Makefileとgccを使用して動的共有ライブラリ(.so、.dylib)を構築する
/comparers
ディレクトリ内
/c/
/Project1/...
/Project2/...
...
/unit_tests/...
/comparers/...
を私がする比較器の共有ライブラリに依存する共有ライブラリをunit_testコンパイルするために試してみました
はこのようなものを作る:
$(SHARED_LIBRARY): assertion.o
$(CC) $(CFLAGS) -shared -o $(OUTPUT_LIB_DIR)/$(SHARED_LIBRARY) $(OUTPUT_DIR)/assertion.o $(COMPARERS_SHARED_LIB_PATH)
:
COMPARERS_SHARED_LIB_PATH= ../comparers/output/debug/lib/libcomparers.so
しかし、私は静的ライブラリを使用する場合、それは動作しません。代わりに正しくコンパイルされます。なぜこれがうまくいかず、正しく動作させる方法は?
UPDATE:エラーメッセージ
上記は、正しく構築されたが、私はそれは、実行時にエラーが発生すると仮定します!私は私の実行ファイルが、それはまたのビルドターゲットが、実行しているとき、それは、このようなエラーメッセージを与えるのと同じ方法リンクする場合:
をdyld: Library not loaded: output/debug/lib/libcomparers.so
Referenced from: /Users/michzio/Developer/MyProjects/BachelorDegree/c/unit_tests/./output/debug/bin/unit_tests
Reason: image not found
Abort trap: 6
「動作しません」あまり役に立たない... –
エラーメッセージをそのまま投稿してください。 –