Модератор:  Модераторы разделов 
	
	
			
	
			
		
	
		
		
		
			
				
								Janik  
									
		Сообщения:  863Статус:  Оператор вычислительных машинОС:  Debian 
		
									
					
								
						
									Сообщение  Janik  19.04.2010 18:38 
			
			
			
			
			Опять я со своим движком, на этот раз проблема на стадии линковки. Ну так вот, я использую загрузку разделяемых библиотек на лету (dlfcn.h). Компиляция происходит успешно. Но когда идет линковка, то ld ругается, что не анйдена библиотека gcc_s
Код: Выделить всё 
make
g++ -O3 -fomit-frame-pointer -fpermissive `pkg-config --libs --cflags lua5.1`  -I../enet/include `sdl-config --cflags` -w -g -Xlinker -i -Xlinker -noinhabit-exec -o pyramid classes.o files.o sound.o pyramid.o text.o weapon.o  `sdl-config --libs` -L /usr/lib/  -ldl -ltokamak
pyramid.o: In function `main':
/home/user/miaj_proektoj/pyramid/engine/pyramid.cpp:38: warning: Using 'dlopen' in statically linked applications requires at runtime the shared libraries from the glibc version used for linking
/usr/bin/ld: cannot find -lgcc_s
collect2: ld returned 1 exit status
make: *** [client] Ошибка 1
ЧЯДНТ?
Кто ищет, тот всегда найдет!
			
			
			 
			
		 
				
		
		 
	 
		
		
		
		
			
				
																			
								watashiwa_daredeska  
						Бывший модератор 			
		Сообщения:  4038Статус:  Искусственный интеллект (pre-alpha) ОС:  Debian GNU/Linux 
		
									
					
								
						
									Сообщение  watashiwa_daredeska  19.04.2010 19:38 
			
			
			
			
			Что выдают:
pkg-config --libs --cflags lua5.1 
sdl-config --cflags 
?
Зачем опции компилятора на стадии линковки (-O3, -fomit-frame-pointer и прочие --cflags)?
Зачем линкеру -i?
(man ld) писал(а): -i  Perform an incremental link (same as option -r)
Что такое -noinhibit-exec не знаю, в моих манах этого нет.
Помимо этого, линкер почему-то считает, что Вы пытаетесь линковать библиотеки статически.
 
			
		 
				
		
		 
	 
		
		
		
		
			
				
								Janik  
									
		Сообщения:  863Статус:  Оператор вычислительных машинОС:  Debian 
		
									
					
								
						
									Сообщение  Janik  19.04.2010 19:44 
			
			
			
			
			Код: Выделить всё 
pkg-config --libs --cflags lua5.1
-I/usr/include/lua5.1  -llua5.1Код: Выделить всё 
 sdl-config --cflags
-I/usr/include/SDL -D_GNU_SOURCE=1 -D_REENTRANT
-noinhibit-exec -- это опция говорит линкеру не останавливаться на ошибках и слинковать файл (согласно ману).
Кто ищет, тот всегда найдет!
			
			
			 
			
		 
				
		
		 
	 
		
		
		
		
			
				
								serzh-z  
						Бывший модератор 			
		Сообщения:  8259Статус:  МаньякОС:  Arch, Fedora, Ubuntu 
		
									
					
								
						
									Сообщение  serzh-z  19.04.2010 19:45 
			
			
			
			
			Janik  писал(а): ↑ 19.04.2010 18:38
ЧЯДНТ?
libgcc_s.a нет?
 
			
		 
				
		
		 
	 
		
		
		
		
			
				
																			
								watashiwa_daredeska  
						Бывший модератор 			
		Сообщения:  4038Статус:  Искусственный интеллект (pre-alpha) ОС:  Debian GNU/Linux 
		
									
					
								
						
									Сообщение  watashiwa_daredeska  19.04.2010 20:11 
			
			
			
			
			user@localhost
$ cat >main.cpp <<EOF
#include <iostream>
using namespace std;
int main() {
  cout << "Hello" << endl;
  return 0;
}
EOF
$ g++ -c -o main.o main.cpp
$ g++ -o main -Xlinker -noinhabit-exec main.o
/usr/bin/ld: cannot find -lgcc_s
collect2: ld returned 1 exit status
$ g++ -o main main.o
$ g++ --version
g++ (Debian 4.4.3-7) 4.4.3
Copyright © 2009 Free Software Foundation, Inc.
This is free software; see the source for copying conditions.  There is NO
warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
Хрень какая-то этот -noinhabit-exec.
 
			
		 
				
		
		 
	 
		
		
		
		
			
				
								Janik  
									
		Сообщения:  863Статус:  Оператор вычислительных машинОС:  Debian 
		
									
					
								
						
									Сообщение  Janik  19.04.2010 20:45 
			
			
			
			
			serzh-z  писал(а): ↑ 19.04.2010 19:45
libgcc_s.a нет?
Нет.
Согласен.
Кто ищет, тот всегда найдет!
			
			
			 
			
		 
				
		
		 
	 
		
		
		
		
			
				
																			
								watashiwa_daredeska  
						Бывший модератор 			
		Сообщения:  4038Статус:  Искусственный интеллект (pre-alpha) ОС:  Debian GNU/Linux 
		
									
					
								
						
									Сообщение  watashiwa_daredeska  19.04.2010 22:34 
			
			
			
			
			Janik  писал(а): ↑ 19.04.2010 20:45
serzh-z  писал(а): ↑ 19.04.2010 19:45
libgcc_s.a нет?
Нет.
Его в принципе нет. По крайней мере, в репозиториях Debian.