[Question] Hỏi: liên kết đến thư viện của gcc |
18/12/2006 07:52:08 (+0700) | #1 | 31073 |
|
lihavim
Elite Member
|
0 |
|
|
Joined: 08/06/2004 15:19:32
Messages: 506
Offline
|
|
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ả. |
|
|
|
|
[Question] Hỏi: liên kết đến thư viện của gcc |
18/12/2006 18:14:50 (+0700) | #2 | 31156 |
|
conmale
Administrator
|
Joined: 07/05/2004 23:43:15
Messages: 9353
Location: down under
Offline
|
|
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. |
|
|
|
[Question] Hỏi: liên kết đến thư viện của gcc |
20/12/2006 08:20:50 (+0700) | #3 | 31487 |
|
lihavim
Elite Member
|
0 |
|
|
Joined: 08/06/2004 15:19:32
Messages: 506
Offline
|
|
Cảm ơn chú đã trả lời
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
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. |
|
|
|
|
[Question] Hỏi: liên kết đến thư viện của gcc |
20/12/2006 18:11:24 (+0700) | #4 | 31568 |
|
conmale
Administrator
|
Joined: 07/05/2004 23:43:15
Messages: 9353
Location: down under
Offline
|
|
lihavim wrote:
Cháu thử cách này được
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. |
|
|
|
[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
|
0 |
|
|
Joined: 11/11/2002 00:33:02
Messages: 9
Offline
|
|
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 ?
|
|
|
|
|
[Question] Re: Hỏi: liên kết đến thư viện của gcc |
27/12/2006 02:14:32 (+0700) | #6 | 32902 |
|
lihavim
Elite Member
|
0 |
|
|
Joined: 08/06/2004 15:19:32
Messages: 506
Offline
|
|
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 .
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 ) |
|
|
|
|
[Question] Re: Hỏi: liên kết đến thư viện của gcc |
30/12/2006 08:01:19 (+0700) | #7 | 33411 |
|
lihavim
Elite Member
|
0 |
|
|
Joined: 08/06/2004 15:19:32
Messages: 506
Offline
|
|
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 ạ? |
|
|
|
|
[Question] Re: Hỏi: liên kết đến thư viện của gcc |
08/02/2007 07:30:31 (+0700) | #8 | 40618 |
|
lihavim
Elite Member
|
0 |
|
|
Joined: 08/06/2004 15:19:32
Messages: 506
Offline
|
|
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
Cảm ơn chú và anh đã giúp đỡ. |
|
|
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|
|
|