J'ai 3 petits fichiers que j'utilise pour faire une bibliothèque statique et une application:Comment résoudre l'erreur de liaison « ne peut pas trouver -lgcc_s »
test.h
#ifndef TEST_H
#define TEST_H
class Test
{
public:
Test();
};
extern Test* gpTest;
#endif
test.cpp
#include "test.h"
Test::Test()
{
gpTest = this;
}
Test test;
main.cpp
#include "test.h"
#include <iostream>
using namespace std;
Test* gpTest = NULL;
int main()
{
return 0;
}
BUILD
g++ -c test.cpp -o test.o
ar cr test.a test.o
g++ -c main.cpp -o main.o
g++ main.o -o app -Wl,--whole-archive -L/home/dumindara/intest/test.a -Wl,-no--whole-archive
erreur (étape de liaison)
/usr/lib64/gcc/x86_64-suse-linux/4.3/../../../../x86_64-suse-linux/bin/ld: cannot find -lgcc_s
collect2: ld returned 1 exit status
J'ai tout essayé: en utilisant -static-libgcc et la liaison à statique libstdC++. Je n'arrive pas à faire ça. Tout cela est dû au drapeau --whole-archive. Mais je ne peux pas m'en passer.
Vous semblez avoir oublié le message d'erreur réel? :) –
: D. Oui, j'ai oublié l'erreur. Ajoutée. – nakiya