У меня есть программа и статическая библиотека:
// 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
Есть ли у вас лучшие идеи?