banner

[Rule] Rules  [Home] Main Forum  [Portal] Portal  
[Members] Member Listing  [Statistics] Statistics  [Search] Search  [Reading Room] Reading Room 
[Register] Register  
[Login] Loginhttp  | https  ]
 
Forum Index Thảo luận hệ điều hành *nix Hỏi: liên kết đến thư viện của gcc  XML
  [Question]   Hỏi: liên kết đến thư viện của gcc 18/12/2006 07:52:08 (+0700) | #1 | 31073
[Avatar]
lihavim
Elite Member

[Minus]    0    [Plus]
Joined: 08/06/2004 15:19:32
Messages: 506
Offline
[Profile] [PM]
Em cài tetex, khi config gặp lỗi, nội dung file config.log như sau:
This file contains any messages produced by compilers while
running configure, to aid debugging if configure makes a mistake.

configure:764: checking whether make sets ${MAKE}
configure:793: checking for gcc
configure:909: checking whether the C compiler (gcc -L/opt/gtk/lib:/usr/local/lib) works
configure:925: gcc -o conftest -I/opt/gtk/include:/usr/local/include -L/opt/gtk/lib:/usr/local/lib conftest.c 1>&5
configure:951: checking whether the C compiler (gcc -L/opt/gtk/lib:/usr/local/lib) is a cross-compiler
configure:956: checking whether we are using GNU C
configure:965: gcc -E conftest.c
configure:984: checking whether gcc accepts -g
configure:1020: checking for c++
configure:1053: checking whether the C++ compiler (c++ -L/opt/gtk/lib:/usr/local/lib) works
configure:1069: c++ -o conftest -I/opt/gtk/include:/usr/local/include -L/opt/gtk/lib:/usr/local/lib conftest.C 1>&5
ld: crtbegin.o: No such file: No such file or directory
configure: failed program was:

#line 1064 "configure"
#include "confdefs.h"

int main(){return(0);} 

Đường dẫn của gcc là /usr/lib/gcc/i486-slackware-linux/3.4.6/ và crtbegin.o có đường dẫn là /usr/lib/gcc/i486-slackware-linux/3.4.6/crtbegin.o.
Em đã set PATH và GCCDIR rồi nhưng tetex vẫn không thấy được crtbegin.o, phải set biến môi trường khác sao ạ? Trong help configure và INSTALL nó gì về cái này cả.
[Up] [Print Copy]
  [Question]   Hỏi: liên kết đến thư viện của gcc 18/12/2006 18:14:50 (+0700) | #2 | 31156
[Avatar]
conmale
Administrator

Joined: 07/05/2004 23:43:15
Messages: 9353
Location: down under
Offline
[Profile] [PM]

lihavim wrote:
Em cài tetex, khi config gặp lỗi, nội dung file config.log như sau:
This file contains any messages produced by compilers while
running configure, to aid debugging if configure makes a mistake.

configure:764: checking whether make sets ${MAKE}
configure:793: checking for gcc
configure:909: checking whether the C compiler (gcc -L/opt/gtk/lib:/usr/local/lib) works
configure:925: gcc -o conftest -I/opt/gtk/include:/usr/local/include -L/opt/gtk/lib:/usr/local/lib conftest.c 1>&5
configure:951: checking whether the C compiler (gcc -L/opt/gtk/lib:/usr/local/lib) is a cross-compiler
configure:956: checking whether we are using GNU C
configure:965: gcc -E conftest.c
configure:984: checking whether gcc accepts -g
configure:1020: checking for c++
configure:1053: checking whether the C++ compiler (c++ -L/opt/gtk/lib:/usr/local/lib) works
configure:1069: c++ -o conftest -I/opt/gtk/include:/usr/local/include -L/opt/gtk/lib:/usr/local/lib conftest.C 1>&5
ld: crtbegin.o: No such file: No such file or directory
configure: failed program was:

#line 1064 "configure"
#include "confdefs.h"

int main(){return(0);} 

Đường dẫn của gcc là /usr/lib/gcc/i486-slackware-linux/3.4.6/ và crtbegin.o có đường dẫn là /usr/lib/gcc/i486-slackware-linux/3.4.6/crtbegin.o.
Em đã set PATH và GCCDIR rồi nhưng tetex vẫn không thấy được crtbegin.o, phải set biến môi trường khác sao ạ? Trong help configure và INSTALL nó gì về cái này cả. 


lihavim dùng slackware?

Cháu điều chỉnh /etc/ld.so.conf và cho thêm dòng /usr/lib/gcc/i486-slackware-linux/3.4.6/ vào đó rồi gõ /sbin/ldconfig -v

Hoặc tạo một symbolic link từ /usr/lib/gcc/i486-slackware-linux/3.4.6/crtbegin.o vào /usr/local/lib rồi thử lại xem?

Thân.
What bringing us together is stronger than what pulling us apart.
[Up] [Print Copy]
  [Question]   Hỏi: liên kết đến thư viện của gcc 20/12/2006 08:20:50 (+0700) | #3 | 31487
[Avatar]
lihavim
Elite Member

[Minus]    0    [Plus]
Joined: 08/06/2004 15:19:32
Messages: 506
Offline
[Profile] [PM]
Cảm ơn chú đã trả lời smilie

conmale wrote:
lihavim dùng slackware? 

Vâng, cháu dùng slackware.

conmale wrote:
Cháu điều chỉnh /etc/ld.so.conf và cho thêm dòng /usr/lib/gcc/i486-slackware-linux/3.4.6/ vào đó rồi gõ /sbin/ldconfig -v 

Dùng cách này không được, ldconfig nó không nhận file crtbegin.o.

conmale wrote:
Hoặc tạo một symbolic link từ /usr/lib/gcc/i486-slackware-linux/3.4.6/crtbegin.o vào /usr/local/lib rồi thử lại xem? 

Cháu thử cách này được smilie

Sau khi cháu tạo link cho file crtbegin.o, config tetex, nó tiếp tục báo lỗi. Nội dung file config.log như sau:
This file contains any messages produced by compilers while
running configure, to aid debugging if configure makes a mistake.

configure:764: checking whether make sets ${MAKE}
configure:793: checking for gcc
configure:909: checking whether the C compiler (gcc -L/opt/gtk/lib:/usr/local/lib) works
configure:925: gcc -o conftest -I/opt/gtk/include:/usr/local/include -L/opt/gtk/lib:/usr/local/lib conftest.c 1>&5
configure:951: checking whether the C compiler (gcc -L/opt/gtk/lib:/usr/local/lib) is a cross-compiler
configure:956: checking whether we are using GNU C
configure:965: gcc -E conftest.c
configure:984: checking whether gcc accepts -g
configure:1020: checking for c++
configure:1053: checking whether the C++ compiler (c++ -L/opt/gtk/lib:/usr/local/lib) works
configure:1069: c++ -o conftest -I/opt/gtk/include:/usr/local/include -L/opt/gtk/lib:/usr/local/lib conftest.C 1>&5
ld: cannot find -lgcc
configure: failed program was:

#line 1064 "configure"
#include "confdefs.h"

int main(){return(0);} 

Search thì cháu biết được, "-lgcc" liên quan đến thư viện libgcc.a cũng ở trong thư mục /usr/lib/gcc/i486-slackware-linux/3.4.6.
Vậy, ngoài cách tạo liên kết thủ công cách file cần thiết, còn cách nào để ldconfig nó nhận được các thư viện trong thư mục /usr/lib/gcc/i486-slackware-linux/3.4.6 không chú nhỉ? Cháu có nghĩ đến viết một cái script để tạo tự động link cho tất cả các file trong thư mục, nhưng như vậy không phân biệt được cái nào là file thư viện, cái nào file dạng khác.
[Up] [Print Copy]
  [Question]   Hỏi: liên kết đến thư viện của gcc 20/12/2006 18:11:24 (+0700) | #4 | 31568
[Avatar]
conmale
Administrator

Joined: 07/05/2004 23:43:15
Messages: 9353
Location: down under
Offline
[Profile] [PM]

lihavim wrote:

Cháu thử cách này được smilie

Sau khi cháu tạo link cho file crtbegin.o, config tetex, nó tiếp tục báo lỗi. Nội dung file config.log như sau:
This file contains any messages produced by compilers while
running configure, to aid debugging if configure makes a mistake.

configure:764: checking whether make sets ${MAKE}
configure:793: checking for gcc
configure:909: checking whether the C compiler (gcc -L/opt/gtk/lib:/usr/local/lib) works
configure:925: gcc -o conftest -I/opt/gtk/include:/usr/local/include -L/opt/gtk/lib:/usr/local/lib conftest.c 1>&5
configure:951: checking whether the C compiler (gcc -L/opt/gtk/lib:/usr/local/lib) is a cross-compiler
configure:956: checking whether we are using GNU C
configure:965: gcc -E conftest.c
configure:984: checking whether gcc accepts -g
configure:1020: checking for c++
configure:1053: checking whether the C++ compiler (c++ -L/opt/gtk/lib:/usr/local/lib) works
configure:1069: c++ -o conftest -I/opt/gtk/include:/usr/local/include -L/opt/gtk/lib:/usr/local/lib conftest.C 1>&5
ld: cannot find -lgcc
configure: failed program was:

#line 1064 "configure"
#include "confdefs.h"

int main(){return(0);} 

Search thì cháu biết được, "-lgcc" liên quan đến thư viện libgcc.a cũng ở trong thư mục /usr/lib/gcc/i486-slackware-linux/3.4.6.
Vậy, ngoài cách tạo liên kết thủ công cách file cần thiết, còn cách nào để ldconfig nó nhận được các thư viện trong thư mục /usr/lib/gcc/i486-slackware-linux/3.4.6 không chú nhỉ? Cháu có nghĩ đến viết một cái script để tạo tự động link cho tất cả các file trong thư mục, nhưng như vậy không phân biệt được cái nào là file thư viện, cái nào file dạng khác. 


Nếu vậy, cách đơn giản nhất là cháu tạo symlink cho trọn bộ
/usr/lib/gcc/i486-slackware-linux/3.4.6
đến /usr/local/lib/gcc

# ln -s /usr/lib/gcc/i486-slackware-linux/3.4.6 /usr/local/lib/gcc

Chú không hiểu sao cháu bị trở ngại này. gcc path, incl và lib hẳn phải đâu vào đó nếu cháu cài gcc đúng quy trình hoặc cài từ rpm tiêu chuẩn.

Thân.
What bringing us together is stronger than what pulling us apart.
[Up] [Print Copy]
  [Question]   Hỏi: liên kết đến thư viện của gcc 23/12/2006 03:21:11 (+0700) | #5 | 32220
chairuou
Member

[Minus]    0    [Plus]
Joined: 11/11/2002 00:33:02
Messages: 9
Offline
[Profile] [PM] [Yahoo!] [MSN] [ICQ]

lihavim wrote:

Đường dẫn của gcc là /usr/lib/gcc/i486-slackware-linux/3.4.6/ và crtbegin.o có đường dẫn là /usr/lib/gcc/i486-slackware-linux/3.4.6/crtbegin.o.
Em đã set PATH và GCCDIR rồi nhưng tetex vẫn không thấy được crtbegin.o, phải set biến môi trường khác sao ạ? Trong help configure và INSTALL nó gì về cái này cả. 

Slackware version mấy vậy? với 10.2 thì gcc lib nằm trong /usr/ĩ86-slackware-linux/lib/
lihavim check /etc/ld.so.conf xem có tương tự thế này không?

Code:
#cat /etc/ld.so.conf 
/usr/local/lib
/usr/X11R6/lib
/usr/i486-slackware-linux/lib
/opt/kde/lib
/usr/lib/qt/lib


PS: tetex có trong install disc của slackware mà, sao phải compile cho cực vậy ?

[Up] [Print Copy]
  [Question]   Re: Hỏi: liên kết đến thư viện của gcc 27/12/2006 02:14:32 (+0700) | #6 | 32902
[Avatar]
lihavim
Elite Member

[Minus]    0    [Plus]
Joined: 08/06/2004 15:19:32
Messages: 506
Offline
[Profile] [PM]
Gửi conmale: Xin lỗi chú, mấy hôm nay cháu thi, nên giờ mới trả lời được.
Quái lạ, mấy hôm không dùng, hôm nay chỉ xóa thằng opera, cài lại, lại gặp trục trặc.
Giờ ngay cả crtbegin.o nó cũng không thấy nữa, mặc dù cháu đã tạo link cho cả crtbegin.o và /usr/lib/gcc/i486-slackware-linux/3.4.6 vào /usr/local/lib.

Cái vấn đề này có lẽ do hôm cháu thử xóa gcc, tự build nhưng lỗi tùm lum, chắp vá hết cái này đến cái khác chẳng xong. Sau đó cần dùng nên dùng cài bằng file tgz. Có lẽ cháu thử xóa gcc, làm lại vậy.

Gửi chairuou: Em dùng bản 10.2. Cái file /etc/ld.so.conf cũng tương tự, nhưng có thêm một dòng /usr/lib/gcc/i486-slackware-linux/3.4.6 smilie.
Khi định cài em quên mất, thấy bác vnpenguin xúi anh Hếu bên vnoss lấy source về làm, em cũng làm theo. Giờ lỡ làm rồi nên làm luôn smilie)
[Up] [Print Copy]
  [Question]   Re: Hỏi: liên kết đến thư viện của gcc 30/12/2006 08:01:19 (+0700) | #7 | 33411
[Avatar]
lihavim
Elite Member

[Minus]    0    [Plus]
Joined: 08/06/2004 15:19:32
Messages: 506
Offline
[Profile] [PM]
Hum, sau khi cài lại, xử lý thêm một số lỗi linh tinh, giờ cháu lại tiếp tục gặp lỗi:
This file contains any messages produced by compilers while
running configure, to aid debugging if configure makes a mistake.

configure:764: checking whether make sets ${MAKE}
configure:793: checking for gcc
configure:909: checking whether the C compiler (gcc -L/opt/gtk/lib:/usr/local/lib) works
configure:925: gcc -o conftest -I/opt/gtk/include:/usr/local/include -L/opt/gtk/lib:/usr/local/lib conftest.c 1>&5
configure:951: checking whether the C compiler (gcc -L/opt/gtk/lib:/usr/local/lib) is a cross-compiler
configure:956: checking whether we are using GNU C
configure:965: gcc -E conftest.c
configure:984: checking whether gcc accepts -g
configure:1020: checking for c++
configure:1053: checking whether the C++ compiler (c++ -L/opt/gtk/lib:/usr/local/lib) works
configure:1069: c++ -o conftest -I/opt/gtk/include:/usr/local/include -L/opt/gtk/lib:/usr/local/lib conftest.C 1>&5
cc1plus: error: invalid option `tune=pentiumpro'
configure: failed program was:

#line 1064 "configure"
#include "confdefs.h"

int main(){return(0);} 

Có vẻ cái option đó trục trặc. Cháu đã thử tìm tìm kiếm về cái lỗi này nhưng chỉ nhận được một kết quả, nhưng trường hợp đó người ta bị khi make, cháu bị ngay khi configure.
Giờ cháu phải làm sao ạ?
[Up] [Print Copy]
  [Question]   Re: Hỏi: liên kết đến thư viện của gcc 08/02/2007 07:30:31 (+0700) | #8 | 40618
[Avatar]
lihavim
Elite Member

[Minus]    0    [Plus]
Joined: 08/06/2004 15:19:32
Messages: 506
Offline
[Profile] [PM]
Hehe, cuối cùng cũng giải quyết xong vấn đề.
Lỗi :
cc1plus: error: invalid option `tune=pentiumpro' 

Có vẻ là do cc1plus của gcc-3.4.3 (bản trước, sau đó cài thêm gcc-3.4.6 mà chưa xóa nó, nên hệ thống nó vẫn dùng của bản gcc-3.4.3). Thử trực tiếp lệnh:
Code:
cc1plus -mtune=pentiumpro

Nó báo lỗi tương tự, vì thế cháu xóa gcc, cài lại thì đã chạy ngon lành smilie

Cảm ơn chú và anh đã giúp đỡ.
[Up] [Print Copy]
[digg] [delicious] [google] [yahoo] [technorati] [reddit] [stumbleupon]
Go to: 
 Users currently in here 
1 Anonymous

Powered by JForum - Extended by HVAOnline
 hvaonline.net  |  hvaforum.net  |  hvazone.net  |  hvanews.net  |  vnhacker.org
1999 - 2013 © v2012|0504|218|