Beiträge anzeigen

Diese Sektion erlaubt es dir alle Beiträge dieses Mitglieds zu sehen. Beachte, dass du nur solche Beiträge sehen kannst, zu denen du auch Zugriffsrechte hast.


Nachrichten - bitmaster

Seiten: 1 [2] 3 4 ... 57
21
Softwareentwicklung / Re: x86-Code auf AMD64 produzieren
« am: 12. March 2009, 17:04 »
ich bin auf Kubuntu 9.04 AMD64 umgestiegen...
9.04?  :-o Ist die neuste nicht 8.10? Also ich nutze 8.04, wegen KDE3. An KDE4 stört mich einiges (Design, Startmenü (wo ist der Eintrag "Befehl ausführen"?), Stabilität (bzw. Instabilität ^^)) etc.

bitmaster
22
Aha, ich dachte das wäre schon für OpenSuSE angepasst, da dort doch "openSUSE 11.0 (one-click install)" steht und es auf http://download.opensuse.org/repositories/KDE:/KDE4:/Factory:/Desktop/openSUSE_11.0/KDE4-BASIS.ymp verweißt.
Sehr wahrscheinlich hast du Recht. :-D
:lol:
23
Wie bluecode schon sagte, ist KDE 4.2 bei OpenSuSE nicht dabei. Also habe ich es nachträglich installiert. Das ändert aber nichts an der Tatsache, dass es instabil lief.
Du kannst nicht erwarten, dass es stabil läuft, wenn es bei der Distribution nicht dabei war, va. da KDE ein rießiges Softwarepaket ist, mit einigem an Abhängigkeiten.
Wenn du wirklich das aktuelle KDE haben willst, dann nimm es aus dem Paketsystem des Distributors, das ist sowohl bei OpenSuse als auch bei Kubuntu in zusätzlichen Paketquellen verfügbar. Erklärungen für OpenSuse und Kubuntu (KDE 4.2.1) oder Kubuntu (KDE 4.2) gibt es.
Aha, ich dachte das wäre schon für OpenSuSE angepasst, da dort doch "openSUSE 11.0 (one-click install)" steht und es auf http://download.opensuse.org/repositories/KDE:/KDE4:/Factory:/Desktop/openSUSE_11.0/KDE4-BASIS.ymp verweißt. Aber OK, dann habe ich mich halt geirrt. Nein, ich bleibe jetzt bei KDE 3. Ich habe Kubuntu 8.04 und nicht 8.10 installiert. Außerdem läuft gerade alles wunderbar. Und du weißt doch: don't change a running system.

bitmaster
24
Mensch Junge!

Du hast also nicht das KDE der Distribution genommen. Lerne daraus! ;)
Ach Kind, habe ich jemals gesagt, dass ich das KDE der Distribution genommen hätte? Wie bluecode schon sagte, ist KDE 4.2 bei OpenSuSE nicht dabei. Also habe ich es nachträglich installiert. Das ändert aber nichts an der Tatsache, dass es instabil lief. Ich muss dazu sagen, dass es 4.2.0 war, weil es zu der Zeit 4.2.1 noch nicht gab.

bitmaster
25
Ich habe auch die 64Bit Version. Die einzigen Dinge die mich momentan nerven sind eine unvollständige deutsche Lokalisierung (was ich aber verkraften kann, da ich Englisch relativ gut verstehe), das die Effekte beim Wechseln der Fenster mittels Alt-Tab irgendwie nicht funktionieren und das es kdevelop und konversation (wobei das so wie es aussieht durch Quassel ersetzt wird) noch nicht für KDE4 gibt. An Abstürze kann ich mit 4.2.0 bzw. 4.2.1 momentan nicht erinnern. Mich würde interessieren wie du überhaupt an eine Distribution kommst die KDE 4.2 out-of-the-box als stable dabei hat. Das gibts zumindest bei Kubuntu nämlich nicht und wenn du die Jaunty Alpha genommen hast bist du selbst Schuld, die ist explizit Alpha.
Ach Kinders!

http://www.kde.org/download/#v4.2

bitmaster
26
Zitat
Und das KDE 4.2 nicht stabil ist entspricht ehrlich gesagt nicht wirklich meiner Erfahrung.
Na ja, wenn Kicker plötzlich abstürtzt (manchmal blieb es auch "nur" hängen), wenn Kwin abstürtzt und wenn plötzlich irgendwelche Symbole verschwinden (erinnert mich ziemlich an meine Windows ME Zeit ^^), dann ist das für mich doch recht instabil. Ich muss dazu sagen, dass das alles jeweils 64 Bit Versionen waren. KA ob die 64 Bit Versionen instabiler sind oder nicht (müssten dann ja Fehler beim Portieren sein (bzw. werden die doch direkt so geschrieben, dass sie für beide Architekturen kompilierbar sind ?)). Was solls, KDE 4 sieht schön aus, ist aber instabil. Meiner Meinung nach ziemlich peinlich (da man ja gerade Microsoft für solche Sachen Ende der 90er und Anfang 2000 dafür kritisiert bzw. sich sogar darüber lustig gemacht hat). Na ja, ich bin froh dass Kubuntu mit KDE 3.5.10 bei mir bis jetzt stabil laufen. Hoffentlich bleibt es dabei.

bitmaster
27
Wobei auch KDE 4.2 immer noch so instabil ist, dass ich es für eine pre-Alpha halten würde, wenn ich es nicht besser wüsste. Wobei eine pre-Alpha doch schon um einiges stabiler laufen müsste.

bitmaster
28
Wenn du irgendwas kompilieren willst, brauchst du immer die *-dev-Pakete (bei Debian, bei SUSE ist es *-devel) der Abhängigkeiten, da sind die Header drin.

Darf man übrigens fragen, wieso du die Distribution gewechselt hast? Einfach mal was anderes ausprobieren?
Na ja, mit der 11.1 von OpenSuSE kann ich keine Musik mehr hören (kA warum aber ohne mein Bayern Fangesang überlebe ich net  :-D ). Ich wollte ja dann eigentl. bei der 11.0 bleiben. Aber dann hat meine Festplatte nun endlich komplett den Geist aufgegeben, so dass ich die Chance genutzt habe und mir eine neue Platte besorgt habe und mich mal an Kubuntu gewagt habe (da ich gerne bei KDE bleiben möchte und Ubuntu ja Gnome nutzt (KDE 3.5 natürlich, KDE 4 ist ja von der Stabilität her schlimmer als ein gewisses ME von Microsoft darmals  :-D )). Und jetzt habe ich auch alles so eingerichtet wie ich es mir vorgestellt habe. Gewundert hat mich halt nur, dass Kubuntu nicht von Haus aus alles nötige zum Kompilieren eingerichtet hatte. Ach ja, und ich musste am Ende aller *.c und *.h Dateien eine newline einfügen (was der Schwachsinn soll weiß ich zwar nicht, aber nun gut). Hoffentlich bleibt jetzt auch alles so ordnungsgemäß wie es jetzt läuft. Bin auf jeden Fall froh, dass endlich die dämliche Festplatte komplett schrott ist und ich gezwungen wurde mir eine schöne neue zu kaufen. So, das dazu.

bitmaster
29
Na ja ok. Auf jeden Fall vielen dank erstmal. Es hat funktioniert.

bitmaster
30
Das wird daran liegen, dass dir das Package fehlt.
Habe mal google konsultiert:
ncurses

Lade dir mal eines dieser packages.
Dann sollte er die header finden.
hmm.. also libncurses5 und ncurses-base sind installiert. Ist das unter (K)Ubuntu so umständlich? Wieso machen die das immer so dämlich? Das eine ist bei OpenSuSE besser und das andere bei (K)ubuntu. Ich verstehe nur nicht warum die Linuxer immer so geil darauf sind sich alles immer zusammen suchen zu müssen. Mich nervt so etwas nur noch.  :roll:
31
Hast du die build-essentials und linux-header über die Quellen geladen?
Hmm.. unter OpenSuSE genügte ein haken bei C/C++ Werzeuge installieren. Aber ich habe die Sachen jetzt mal installiert. Jetzt sagt er mir:

Zitat
configure: error: *** (n)curses.h needed ***


bitmaster
32
Na ja, weil in der Log exec_prefix='NONE' steht (man beacht das NONE). Das ist die komplette Log. Also das bekomme ich nach einem ./configure "zu hören":

Zitat
checking build system type... x86_64-unknown-linux-gnu
checking host system type... x86_64-unknown-linux-gnu
checking target system type... x86_64-unknown-linux-gnu
checking for a BSD-compatible install... /usr/bin/install -c
checking whether build environment is sane... yes
checking for a thread-safe mkdir -p... /bin/mkdir -p
checking for gawk... no
checking for mawk... mawk
checking whether make sets $(MAKE)... yes
*** LINUX, building POSIX version. we need (n)curses.
checking for ranlib... ranlib
checking for gmake... no
checking for make... /usr/bin/make
checking whether /usr/bin/make sets $(MAKE)... yes
checking for gcc... gcc
checking for C compiler default output file name...
configure: error: in `/home/klaus/Setup/ht-2.0.16':
configure: error: C compiler cannot create executables
See `config.log' for more details.

bitmaster
33
Klar ist ein Compiler installiert. Mein OS kann ich ja Compilieren. Also die configure.log sieht so aus:

## ---------------- ##
## Cache variables. ##
## ---------------- ##

ac_cv_build=x86_64-unknown-linux-gnu
ac_cv_env_CCC_set=
ac_cv_env_CCC_value=
ac_cv_env_CC_set=
ac_cv_env_CC_value=
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_CXXFLAGS_set=
ac_cv_env_CXXFLAGS_value=
ac_cv_env_CXX_set=
ac_cv_env_CXX_value=
ac_cv_env_LDFLAGS_set=
ac_cv_env_LDFLAGS_value=
ac_cv_env_LIBS_set=
ac_cv_env_LIBS_value=
ac_cv_env_YACC_set=
ac_cv_env_YACC_value=
ac_cv_env_YFLAGS_set=
ac_cv_env_YFLAGS_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_host=x86_64-unknown-linux-gnu
ac_cv_path_MAKE=/usr/bin/make
ac_cv_path_install='/usr/bin/install -c'
ac_cv_path_mkdir=/bin/mkdir
ac_cv_prog_AWK=mawk
ac_cv_prog_ac_ct_CC=gcc
ac_cv_prog_ac_ct_RANLIB=ranlib
ac_cv_prog_make__usr_bin_make_set=yes
ac_cv_prog_make_make_set=yes
ac_cv_target=x86_64-unknown-linux-gnu

## ----------------- ##
## Output variables. ##
## ----------------- ##

ACLOCAL='${SHELL} /home/klaus/Setup/ht-2.0.16/missing --run aclocal-1.10'
AMDEPBACKSLASH=''
AMDEP_FALSE=''
AMDEP_TRUE=''
AMTAR='${SHELL} /home/klaus/Setup/ht-2.0.16/missing --run tar'
AR=''
AUTOCONF='${SHELL} /home/klaus/Setup/ht-2.0.16/missing --run autoconf'
AUTOHEADER='${SHELL} /home/klaus/Setup/ht-2.0.16/missing --run autoheader'
AUTOMAKE='${SHELL} /home/klaus/Setup/ht-2.0.16/missing --run automake-1.10'
AWK='mawk'
CC='gcc'
CCDEPMODE=''
CFLAGS='-DNOMACROS -pipe -O3 -fomit-frame-pointer -Wall -fsigned-char -D_LARGEFILE_SOURCE -D_FILE_OFFSET_BITS=64 '
CPP=''
CPPFLAGS=''
CXX=''
CXXDEPMODE=''
CXXFLAGS='-DNOMACROS -pipe -O3 -fomit-frame-pointer -Wall -fsigned-char -D_LARGEFILE_SOURCE -D_FILE_OFFSET_BITS=64 -Woverloaded-virtual -Wnon-virtual-dtor '
CYGPATH_W='echo'
DEFS=''
DEPDIR=''
ECHO_C=''
ECHO_N='-n'
ECHO_T=''
EGREP=''
ENABLE_INCLUDED_LZO_FALSE=''
ENABLE_INCLUDED_LZO_TRUE=''
EXEEXT=''
GREP=''
HT_LDFLAGS=''
HT_LIBS=''
INSTALL_DATA='${INSTALL} -m 644'
INSTALL_PROGRAM='${INSTALL}'
INSTALL_SCRIPT='${INSTALL}'
INSTALL_STRIP_PROGRAM='$(install_sh) -c -s'
IO_DIR='posix'
LDFLAGS=''
LEX=''
LEXLIB=''
LEX_OUTPUT_ROOT=''
LIBOBJS=''
LIBS=''
LTLIBOBJS=''
LZO_LIBS=''
MAKE='/usr/bin/make'
MAKEINFO='${SHELL} /home/klaus/Setup/ht-2.0.16/missing --run makeinfo'
MKDIR_P='/bin/mkdir -p'
OBJEXT=''
PACKAGE='ht'
PACKAGE_BUGREPORT='https://sourceforge.net/tracker/?group_id=1066'
PACKAGE_NAME='ht'
PACKAGE_STRING='ht 2.0.16'
PACKAGE_TARNAME='ht'
PACKAGE_VERSION='2.0.16'
PATH_SEPARATOR=':'
RANLIB='ranlib'
SET_MAKE=''
SHELL='/bin/bash'
STRIP=''
USE_DJGPP_DIR_FALSE=''
USE_DJGPP_DIR_TRUE='#'
USE_LZO_FALSE=''
USE_LZO_TRUE=''
USE_POSIX_DIR_FALSE='#'
USE_POSIX_DIR_TRUE=''
USE_WIN32_DIR_FALSE=''
USE_WIN32_DIR_TRUE='#'
VERSION='2.0.16'
YACC=''
YFLAGS=''
ac_ct_CC='gcc'
ac_ct_CXX=''
am__fastdepCC_FALSE=''
am__fastdepCC_TRUE=''
am__fastdepCXX_FALSE=''
am__fastdepCXX_TRUE=''
am__include=''
am__isrc=''
am__leading_dot='.'
am__quote=''
am__tar='${AMTAR} chof - "$$tardir"'
am__untar='${AMTAR} xf -'
bindir='${exec_prefix}/bin'
build='x86_64-unknown-linux-gnu'
build_alias=''
build_cpu='x86_64'
build_os='linux-gnu'
build_vendor='unknown'
datadir='${datarootdir}'
datarootdir='${prefix}/share'
docdir='${datarootdir}/doc/${PACKAGE_TARNAME}'
dvidir='${docdir}'
[b]exec_prefix='NONE'[/b]
host='x86_64-unknown-linux-gnu'
host_alias=''
host_cpu='x86_64'
host_os='linux-gnu'
host_vendor='unknown'
htmldir='${docdir}'
includedir='${prefix}/include'
infodir='${datarootdir}/info'
install_sh='$(SHELL) /home/klaus/Setup/ht-2.0.16/install-sh'
libdir='${exec_prefix}/lib'
libexecdir='${exec_prefix}/libexec'
localedir='${datarootdir}/locale'
localstatedir='${prefix}/var'
mandir='${datarootdir}/man'
mkdir_p='/bin/mkdir -p'
oldincludedir='/usr/include'
pdfdir='${docdir}'
prefix='/usr'
program_transform_name='s,x,x,'
psdir='${docdir}'
sbindir='${exec_prefix}/sbin'
sharedstatedir='${prefix}/com'
sysconfdir='${prefix}/etc'
target='x86_64-unknown-linux-gnu'
target_alias=''
target_cpu='x86_64'
target_os='linux-gnu'
target_vendor='unknown'

## ----------- ##
## confdefs.h. ##
## ----------- ##

#define PACKAGE_NAME "ht"
#define PACKAGE_TARNAME "ht"
#define PACKAGE_VERSION "2.0.16"
#define PACKAGE_STRING "ht 2.0.16"
#define PACKAGE_BUGREPORT "https://sourceforge.net/tracker/?group_id=1066"
#define PACKAGE "ht"
#define VERSION "2.0.16"
#define SYSTEM_OSAPI_SPECIFIC_TYPES_HDR "io/posix/types.h"

configure: exit 77

Also was hat das "exec_prefix='NONE'" zu sagen? Und ich weiß nicht genau wo jetzt der Fehler liegt bzw. was ich ändern muss damit es funktioniert.

bitmaster
34
So, ich bin gerade von OpenSuSE 11.0 auf Kubuntu gewechselt (mit KDE 3.5). So weit so gut. Jetzt wollte ich gerade ein paar Anwendungen kompilieren und bekomme folgende Fehlermeldung nach Eingabe von ./configure

Zitat
configure: error: C compiler cannot create executables

Wie jetzt? Was soll ich jetzt machen?

vielen dank schon mal

bitmaster
35
OS-Design / Re: Kommandozeilendesign
« am: 28. February 2009, 10:38 »
Tjo wenn du Code sehen willst, dann musst du erstmal die Programmiersprache nennen bzw. eigentl. dürftest du mit so einer "Kleinigkeit" keine Probleme haben wenn du schon ein OS codest. Also ich würde noch an folgendes denken:

Die ersten und letzten Leerzeichen der Eingabe sollten übersprungen werden, damit z.B. eine Eingabe von "   ls" das Selbe ergibt wie "ls" oder auch "ls     ". Und natürlich sollte man daran denken, dass die ersten Leerzeichen nach dem Befehl die Trennung von Befehl und Parametern signalisieren (vorausgesetzt es folgt noch etwas nach den Leerzeichen).

KA ob du zwischen Groß-/Kleinschreibung unterscheiden willst oder nicht. Ansonsten solltest du daran auch noch denken. Da gibt es zwei Möglichkeiten. Endweder du sorgst dafür, dass die Eingabe so umgewandelt wird dass du alles in Kleinbuchstaben hast und vergleichst es dann mit den Zeichenketten der Befehle, die dann auch nur aus Kleinbuchstaben bestehen dürfen oder du machst das Selbe nur mit Großbuchstaben. Im Grunde ist das egal.

Und was soll passieren wenn man gar nichts eingibt (nur Enter drückt oder vorher nur Leerzeichen eingegeben hat). Evtl. eine Ausgabe dass es die Datei/den Befehl nicht gibt (also so als ob was falsches eingegeben wurde) oder halt einfach einen Zeilensprung machen. Wie du es haben willst.

Tjo woran sollte man sonst noch denken? KA, fällt mir jetzt so schnell nichts ein. Ihr könnt ja ergenzen falls euch noch was einfällt.

bitmaster
36
Lowlevel-Coding / Re: Struktur auf beliebigen Speicher anwenden
« am: 21. February 2009, 01:02 »
So, thx schon mal.

Ich habe folgendes Problem. Ich habe eine Variable vom Typ uint64_t. Jetzt habe ich einen Zeiger und möchte, dass dessen Wert der Adresse gleich dem Wert der Variable ist. Ich mache das so:

uint64_t dummy;
uint8_t* zeiger;
...
zeiger = (uint8_t*)dummy;

Nur da dummy ja Werte größer gleich 4 GByte annehmen kann, gibts unter x86 folgende Meldung von gcc:

Zitat
error: cast to pointer from integer of different size

Wie bringe ich dem gcc jetzt bei, dass der Wert der Variablen dummy zu diesem Zeitpunkt nicht größer gleich 4 GByte ist?

thx

bitmaster

EDIT: Tjo nach dem Posten ist mir die Lösung eingefallen, sry.

So geht es:

zeiger = (uint8_t*)((uintptr_t)dummy);
37
Lowlevel-Coding / Re: Struktur auf beliebigen Speicher anwenden
« am: 18. February 2009, 18:48 »
Ah vielen dank bluecode. Also wenn ich nach dem C99 Standard gehe, dann brauche ich keine types.h sondern verwende die stdint.h (war es glaube ich) und nehme anstatt u8 uint8_t, oder?

Demnach sollte ich meine kprint nicht so

void kprint(char* msg);
sondern lieber so

void kprint(int8_t* msg);
definieren?

thx

bitmaster
38
Lowlevel-Coding / Re: Struktur auf beliebigen Speicher anwenden
« am: 18. February 2009, 13:10 »
Wenn ich das richtig verstanden habe, würde in diesem Fall Zeiger um 5*32 Bit = 5*4 Bytes = 20 Bytes erhöht, oder?
ja.

Zitat
Sprich ich muss uintptr_t erst in der types.h eintragen. Nur als welchen Typen?
Kommt offensichtlich auf die Architektur an für die du programmierst. Bei 32bit wohl uint32_t und bei 64bit wohl uint64_t.
Ah danke. Ich habe aber gesehen dass uintptr_t nicht in die types.h sondern in die stdint.h kommt. Aber wozu brauche ich dann eine types.h, wenn in der stdint.h schon solche Sachen wie int8_t, uint8_t etc. drin stehen? Und wann sollte ich die aus der types.h und wann die aus der stdint.h nehmen? Bzw. wann sollte ich eigentl. generell diese Typen nehmen? Also sollte ich z.B. bei meiner kprint "char *" oder "u8 *" oder "uint8_t *" verwenden?

So, ich habe jetzt noch ein Problem, was nichts mit Programmierung zu tun hat. Ich habe gerade eine Anwendung mittels ./configure und make all install installiert. Nur habe ich diese in dem falschen Verzeichnis installiert. Also ich habe vergessen der ./configure das --prefix=blabla anzugeben. Gibt es eine möglichkeit die Anwendung wieder zu deinstallieren? Also dass er alles rückgängig macht, was ich seit dem ./configure und dem make all install gemacht habe?

thx

bitmaster
39
Lowlevel-Coding / Re: Struktur auf beliebigen Speicher anwenden
« am: 17. February 2009, 19:51 »
Du darfst mit dem sehr wohl rechnen, aber es wird nicht das sein was du dir vorstellst. zB:
T *t = 0;
++t;
Unter der Annahme, dass T ein Typ der Größe s ist, ist nach diesem Codestück t = 0 + 1 * s = s, d.h. es wird anstatt ein Byte weiterzugehen einmal s Bytes weitergegangen.

Wenn du wirklich bytes weitergehen möchtest, dann macht man das so:
T *t = 0;
t = (T*)((uintptr_t)t + x)
wobei x die Anzahl der Bytes ist die du weiter möchtest.
So, ich möchte also jetzt einen Zeiger um z.B. 5 Bytes erhöhen. Dann geht es so ja nicht:

u32 *zeiger;
//<- hier wird der Wert von Zeiger festgelegt
zeiger += 5;

Wenn ich das richtig verstanden habe, würde in diesem Fall Zeiger um 5*32 Bit = 5*4 Bytes = 20 Bytes erhöht, oder?

Will ich aber tatsächlich nur um 5 erhöhen müsste ich es so machen?

zeiger = (u32*)((uintptr_t)zeiger + 5);
Nur leider sagt mir mein gcc

Zitat
error: ‘uintptr_t’ undeclared (first use in this function)

Sprich ich muss uintptr_t erst in der types.h eintragen. Nur als welchen Typen?

thx

bitmaster
40
Lowlevel-Coding / Re: Struktur auf beliebigen Speicher anwenden
« am: 12. February 2009, 12:52 »
char *pch;
size_t i;
...
i = (size_t)pch;

Den richtigen Cast verwenden.
:roll: ich Idiot, thx
Seiten: 1 [2] 3 4 ... 57

Einloggen