[Question] c++ trên linux |
13/09/2006 11:23:44 (+0700) | #1 | 22943 |
ImNotTeen
Member
|
0 |
|
|
Joined: 10/09/2006 20:01:09
Messages: 4
Offline
|
|
Các bác à, em mới làm quen với cái Fedora Core 5 chưa được 2 ngày nên nếu em hỏi có ngô ngố thì các bác đừng cười nhá.
em dùng cái KDevelop để build 1 chương trình đơn giản. Sử dụng code mẫu của nó với chương trình Console dạng hello world thì nó chạy tốt , nhưng làm thử 1 chương trình có GUI thì toàn báo lỗi , không build được . Sau đây là chương trình và cái file config.log của nó :
[winpro.cpp]
Code:
#ifdef HAVE_CONFIG_H
#include <config.h>
#endif
#include <windows.h>
int STDCALL
WinMain (HINSTANCE hInst, HINSTANCE hPrev, LPSTR lpCmd, int nShow)
{
MessageBox (NULL, "Hello, Windows!", "Hello", MB_OK);
return 0;
}
[config.log]
Code:
This file contains any messages produced by compilers while
running configure, to aid debugging if configure makes a mistake.
It was created by configure, which was
generated by GNU Autoconf 2.59. Invocation command line was
$ /root/programming/winpro/configure --enable-debug=full
## --------- ##
## Platform. ##
## --------- ##
hostname = localhost.localdomain
uname -m = i686
uname -r = 2.6.15-1.2054_FC5
uname -s = Linux
uname -v = #1 Tue Mar 14 15:48:33 EST 2006
/usr/bin/uname -p = unknown
/bin/uname -X = unknown
/bin/arch = i686
/usr/bin/arch -k = unknown
/usr/convex/getsysinfo = unknown
hostinfo = unknown
/bin/machine = unknown
/usr/bin/oslevel = unknown
/bin/universe = unknown
PATH: /usr/kerberos/sbin
PATH: /usr/kerberos/bin
PATH: /usr/local/sbin
PATH: /usr/local/bin
PATH: /sbin
PATH: /bin
PATH: /usr/sbin
PATH: /usr/bin
PATH: /usr/X11R6/bin
PATH: /root/bin
## ----------- ##
## Core tests. ##
## ----------- ##
configure:1539: checking for a BSD-compatible install
configure:1594: result: /usr/bin/install -c
configure:1605: checking whether build environment is sane
configure:1648: result: yes
configure:1713: checking for gawk
configure:1729: found /bin/gawk
configure:1739: result: gawk
configure:1749: checking whether make sets $(MAKE)
configure:1769: result: yes
configure:2038: checking for C++ compiler version
configure:2041: i586-mingw32msvc-c++ --version </dev/null >&5
/root/programming/winpro/configure: line 2042: i586-mingw32msvc-c++: command not found
configure:2044: $? = 127
configure:2046: i586-mingw32msvc-c++ -v </dev/null >&5
/root/programming/winpro/configure: line 2047: i586-mingw32msvc-c++: command not found
configure:2049: $? = 127
configure:2051: i586-mingw32msvc-c++ -V </dev/null >&5
/root/programming/winpro/configure: line 2052: i586-mingw32msvc-c++: command not found
configure:2054: $? = 127
configure:2077: checking for C++ compiler default output file name
configure:2080: i586-mingw32msvc-c++ -O0 -g3 conftest.cc >&5
/root/programming/winpro/configure: line 2081: i586-mingw32msvc-c++: command not found
configure:2083: $? = 127
configure: failed program was:
| /* confdefs.h. */
|
| #define PACKAGE_NAME ""
| #define PACKAGE_TARNAME ""
| #define PACKAGE_VERSION ""
| #define PACKAGE_STRING ""
| #define PACKAGE_BUGREPORT ""
| #define PACKAGE "winpro"
| #define VERSION "0.1"
| /* end confdefs.h. */
|
| int
| main ()
| {
|
| ;
| return 0;
| }
configure:2122: error: C++ compiler cannot create executables
See `config.log' for more details.
## ---------------- ##
## Cache variables. ##
## ---------------- ##
ac_cv_env_CC_set=set
ac_cv_env_CC_value=i586-mingw32msvc-c
ac_cv_env_CFLAGS_set=
ac_cv_env_CFLAGS_value=
ac_cv_env_CPPFLAGS_set=
ac_cv_env_CPPFLAGS_value=
ac_cv_env_CPP_set=
ac_cv_env_CPP_value=
ac_cv_env_CXXCPP_set=
ac_cv_env_CXXCPP_value=
ac_cv_env_CXXFLAGS_set=set
ac_cv_env_CXXFLAGS_value='-O0 -g3'
ac_cv_env_CXX_set=set
ac_cv_env_CXX_value=i586-mingw32msvc-c++
ac_cv_env_F77_set=
ac_cv_env_F77_value=
ac_cv_env_FFLAGS_set=
ac_cv_env_FFLAGS_value=
ac_cv_env_LDFLAGS_set=
ac_cv_env_LDFLAGS_value=
ac_cv_env_build_alias_set=
ac_cv_env_build_alias_value=
ac_cv_env_host_alias_set=
ac_cv_env_host_alias_value=
ac_cv_env_target_alias_set=
ac_cv_env_target_alias_value=
ac_cv_path_install='/usr/bin/install -c'
ac_cv_prog_AWK=gawk
ac_cv_prog_make_make_set=yes
## ----------------- ##
## Output variables. ##
## ----------------- ##
ACLOCAL='${SHELL} /root/programming/winpro/missing --run aclocal-1.9'
AMDEPBACKSLASH=''
AMDEP_FALSE=''
AMDEP_TRUE=''
AMTAR='${SHELL} /root/programming/winpro/missing --run tar'
AR=''
AUTOCONF='${SHELL} /root/programming/winpro/missing --run autoconf'
AUTOHEADER='${SHELL} /root/programming/winpro/missing --run autoheader'
AUTOMAKE='${SHELL} /root/programming/winpro/missing --run automake-1.9'
AWK='gawk'
CC='i586-mingw32msvc-c'
CCDEPMODE=''
CFLAGS=''
CPP=''
CPPFLAGS=''
CXX='i586-mingw32msvc-c++'
CXXCPP=''
CXXDEPMODE=''
CXXFLAGS='-O0 -g3'
CYGPATH_W='echo'
DEFS=''
DEPDIR=''
ECHO='echo'
ECHO_C=''
ECHO_N='-n'
ECHO_T=''
EGREP=''
EXEEXT=''
F77=''
FFLAGS=''
INSTALL_DATA='${INSTALL} -m 644'
INSTALL_PROGRAM='${INSTALL}'
INSTALL_SCRIPT='${INSTALL}'
INSTALL_STRIP_PROGRAM='${SHELL} $(install_sh) -c -s'
LDFLAGS=''
LIBOBJS=''
LIBS=''
LIBTOOL=''
LN_S=''
LTLIBOBJS=''
MAKEINFO='${SHELL} /root/programming/winpro/missing --run makeinfo'
OBJEXT=''
PACKAGE='winpro'
PACKAGE_BUGREPORT=''
PACKAGE_NAME=''
PACKAGE_STRING=''
PACKAGE_TARNAME=''
PACKAGE_VERSION=''
PATH_SEPARATOR=':'
RANLIB=''
SET_MAKE=''
SHELL='/bin/sh'
STRIP=''
VERSION='0.1'
ac_ct_AR=''
ac_ct_CC=''
ac_ct_CXX=''
ac_ct_F77=''
ac_ct_RANLIB=''
ac_ct_STRIP=''
am__fastdepCC_FALSE=''
am__fastdepCC_TRUE=''
am__fastdepCXX_FALSE=''
am__fastdepCXX_TRUE=''
am__include=''
am__leading_dot='.'
am__quote=''
am__tar='${AMTAR} chof - "$$tardir"'
am__untar='${AMTAR} xf -'
bindir='${exec_prefix}/bin'
build=''
build_alias=''
build_cpu=''
build_os=''
build_vendor=''
datadir='${prefix}/share'
exec_prefix='NONE'
host=''
host_alias=''
host_cpu=''
host_os=''
host_vendor=''
includedir='${prefix}/include'
infodir='${prefix}/info'
install_sh='/root/programming/winpro/install-sh'
libdir='${exec_prefix}/lib'
libexecdir='${exec_prefix}/libexec'
localstatedir='${prefix}/var'
mandir='${prefix}/man'
mkdir_p='mkdir -p --'
oldincludedir='/usr/include'
prefix='NONE'
program_transform_name='s,x,x,'
sbindir='${exec_prefix}/sbin'
sharedstatedir='${prefix}/com'
sysconfdir='${prefix}/etc'
target_alias=''
## ----------- ##
## confdefs.h. ##
## ----------- ##
#define PACKAGE "winpro"
#define PACKAGE_BUGREPORT ""
#define PACKAGE_NAME ""
#define PACKAGE_STRING ""
#define PACKAGE_TARNAME ""
#define PACKAGE_VERSION ""
#define VERSION "0.1"
configure: exit 77
cũng biết là lỗi xoay quanh việc thiếu cái i586-mingw32msvc-c++ gì đó nhưng mà lên google tìm toàn thấy cái đó cho windows thôi. Các bác chỉ cho em cách khắc phục được không ?
thanks. |
|
|
|
|
[Question] Re: c++ trên linux |
14/09/2006 04:17:30 (+0700) | #2 | 23127 |
prof
Moderator
|
Joined: 23/11/2004 01:08:55
Messages: 205
Offline
|
|
Hello ImNotTeen,
Theo tớ cảm nhận từ bài viết của bạn thì dường như bạn có ý định dùng source code đã được viết trên môi trường Windows để đem sang KDevelop biên dịch. Điển hình là tớ thấy có hàm WinMain(). Tớ nghĩ bạn nên tìm hiểu về KDevelop & Qtdesigner để viết một GUI App. đơn giản như Helloworld. Việc đem mã nguồn từ Windows (IDE VC++ chẳng hạn) sang Fedora (KDevelop) thường hay phát sinh những lỗi không tương thích về thư viện và cú pháp, khiến cho công việc debug rất mất thời gian.
Chút góp ý.
|
|
|
|
|
[Question] c++ trên linux |
15/09/2006 11:41:23 (+0700) | #3 | 23492 |
ImNotTeen
Member
|
0 |
|
|
Joined: 10/09/2006 20:01:09
Messages: 4
Offline
|
|
hi
cái này thực ra không phải mình viết mà là code mẫu trong mấy cái Template của KDevelop. Mới làm quen với nó nên có ví dụ nào thì thử build chạy xem sao , đến cái kia thì bị lỗi nên ko biết làm thế nào. À cho mình hỏi luôn là trong FC thì có cái nào tương đương như Win32API không ? Nếu có thì tìm thông tin về nó ở đâu ? Thanks bro |
|
|
|
|
[Question] c++ trên linux |
20/09/2006 02:16:47 (+0700) | #4 | 24430 |
prof
Moderator
|
Joined: 23/11/2004 01:08:55
Messages: 205
Offline
|
|
ImNotTeen wrote:
hi
cái này thực ra không phải mình viết mà là code mẫu trong mấy cái Template của KDevelop. Mới làm quen với nó nên có ví dụ nào thì thử build chạy xem sao , đến cái kia thì bị lỗi nên ko biết làm thế nào.
Hi ImNotTeen,
Rất tiếc là tớ chưa từng gặp lỗi mà bạn mô tả bao giờ. Để viết một ứng dụng GUI đơn giản như helloworld sử dụng KDevelop, bạn thử tham khảo tài liệu này xem sao (thay vì dùng template có sẵn): hxxp://www.dazzle.plus.com/linux/
À cho mình hỏi luôn là trong FC thì có cái nào tương đương như Win32API không ? Nếu có thì tìm thông tin về nó ở đâu ? Thanks bro
Câu hỏi này tớ chưa rõ ý của bạn lắm. Có phải bạn định hỏi về việc tìm thông tin các hàm API của linux kernel? |
|
|
|
|
[Question] c++ trên linux |
20/09/2006 07:58:20 (+0700) | #5 | 24486 |
ImNotTeen
Member
|
0 |
|
|
Joined: 10/09/2006 20:01:09
Messages: 4
Offline
|
|
đúng rồi đó , theo mình được biết thì nhân của linux là chung nên chắc là có API của kernel của nó đúng không ?
thứ 2 là về GUI API của linux thì thế nào ? có khác nhau giữa FC, BSD .. không ? và cuối cùng là mình đang dùng FC nên muốn tìm hiểu về nó, mình có thể tìm các API của kernel và API cho lập trình GUI cho nó ở đâu ?
thanks. |
|
|
|
|
[Question] c++ trên linux |
21/09/2006 02:20:26 (+0700) | #6 | 24616 |
prof
Moderator
|
Joined: 23/11/2004 01:08:55
Messages: 205
Offline
|
|
Hello ImNotTeen,
ImNotTeen wrote:
đúng rồi đó , theo mình được biết thì nhân của linux là chung nên chắc là có API của kernel của nó đúng không ?
Như bạn đã biết, linux kernel đã có nhiều thay đổi đáng kể từ phiên bản 2.0, 2.2, 2.4 và cho tới phiên bản gần đây là 2.6. Mỗi lần thay đổi như vậy, tập các hàm API của linux kernel tương ứng ít nhiều cũng bị thay đổi nhằm cải thiện, tối ưu hoá về mặt tốc độ, tăng tính ổn định cũng như nâng cao tính gọn nhẹ cho kernel. Điều đó đồng nghĩa với việc một khi bạn muốn sử dụng các hàm API của kernel, bạn nên tham khảo kỹ các hàm API tương ứng với phiên bản kernel mà bạn có ý định triển khai.
Hiện tại có khá nhiều tài liệu đề cập đến thông tin các hàm API của linux kernel. Một trong số đó, bạn có thể tham khảo tại: hxxp://kernelbook.sourceforge.net/
thứ 2 là về GUI API của linux thì thế nào ? có khác nhau giữa FC, BSD .. không ?
Vào thời điểm này, theo tớ được biết, có khá nhiều GUI Toolkit cho linux. Có thể kể đến wxWindows http://wxwindows.org/), GTK http://www.gtk.org/), Qt http://www.trolltech.com/), FLTK http://www.fltk.org/),.... Trong số này, wxWindows đang được sử dụng khá phổ biến vì khả năng hỗ trợ cross-platform của nó (Win32, Linux, MacOS, OS/2,...). Như vậy, vấn đề ở đây là tuỳ thuộc vào GUI toolkit mà bạn lựa chọn có khả năng hỗ trợ FC và BSD đồng thời hay không.
và cuối cùng là mình đang dùng FC nên muốn tìm hiểu về nó, mình có thể tìm các API của kernel và API cho lập trình GUI cho nó ở đâu ?
thanks.
Tớ đã giới thiệu một số link tương ứng ở trên. Bạn có thể vào đó tìm hiểu kỹ thêm nhé.
Chúc bạn thành công
|
|
|
|
|
[Question] c++ trên linux |
21/09/2006 08:08:51 (+0700) | #7 | 24691 |
ImNotTeen
Member
|
0 |
|
|
Joined: 10/09/2006 20:01:09
Messages: 4
Offline
|
|
cảm ơn prof , mình bắt đầu xem nào. |
|
|
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|
|
|