私はプログラムと静的ライブラリを持っています:
// main.cpp
int main() {}
// mylib.cpp
#include <iostream>
struct S {
S() { std::cout << "Hello World\n";}
};
S s;
libmylib.a
静的ライブラリ( )をプログラムオブジェクト( )にリンクしたいのですmain.o
が、後者は前者のシンボルを直接使用していません。
次のコマンドは、で機能しないようですg++ 4.7
。それらはエラーや警告なしで実行されますが、明らかlibmylib.a
にリンクされません:
g++ -o program main.o -Wl,--no-as-needed /path/to/libmylib.a
また
g++ -o program main.o -L/path/to/ -Wl,--no-as-needed -lmylib
もっと良いアイデアはありますか?