PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : Probleme beim kompilieren


Melbourne, FL
2013-12-05, 05:45:34
Hallo,

ich bin bei Linux nur maessig fit und hab Probleme ein Miningprogramm (https://github.com/tandyuk/jhPrimeminer) fuer Primecoin zu kompilieren. Das Hauptproblem ist, dass ich auf einer etwas ungewoehnlichen Distribution bin: Clustervision OS welches auf Scientific Linux aufbaut. Inzwischen bin ich soweit, dass die Kompilierung durchlaeuft...auch wenn sie haufenweise Fehler bringt:

$ make
g++ -c -mtune=native -O3 -Wall -Wextra -std=c++0x -fomit-frame-pointer -I/usr/local/include -I/usr/include src/primecoinMiner/stats.cpp -o src/primecoinMiner/stats.o
src/primecoinMiner/stats.cpp: In function âvoid notifyStats()â:
src/primecoinMiner/stats.cpp:39: warning: format â%lluâ expects type âlong long unsigned intâ, but argument 6 has type âuint64â
src/primecoinMiner/stats.cpp:39: warning: format â%lluâ expects type âlong long unsigned intâ, but argument 7 has type âuint64â
src/primecoinMiner/stats.cpp:39: warning: format â%lluâ expects type âlong long unsigned intâ, but argument 8 has type âuint64_tâ
src/primecoinMiner/stats.cpp: In function âvoid NEWnotifyStats()â:
src/primecoinMiner/stats.cpp:84: warning: deprecated conversion from string constant to âchar*â
src/primecoinMiner/stats.cpp:85: warning: deprecated conversion from string constant to âchar*â
src/primecoinMiner/stats.cpp:86: warning: deprecated conversion from string constant to âchar*â
src/primecoinMiner/stats.cpp:87: warning: deprecated conversion from string constant to âchar*â
src/primecoinMiner/stats.cpp:88: warning: deprecated conversion from string constant to âchar*â
src/primecoinMiner/stats.cpp:89: warning: deprecated conversion from string constant to âchar*â
src/primecoinMiner/stats.cpp:90: warning: deprecated conversion from string constant to âchar*â
src/primecoinMiner/stats.cpp:91: warning: deprecated conversion from string constant to âchar*â
src/primecoinMiner/stats.cpp:92: warning: deprecated conversion from string constant to âchar*â
src/primecoinMiner/stats.cpp:93: warning: deprecated conversion from string constant to âchar*â
src/primecoinMiner/stats.cpp:95: warning: deprecated conversion from string constant to âchar*â
src/primecoinMiner/stats.cpp:98: warning: deprecated conversion from string constant to âchar*â
src/primecoinMiner/stats.cpp:108: warning: deprecated conversion from string constant to âchar*â
src/primecoinMiner/stats.cpp:117: warning: deprecated conversion from string constant to âchar*â
src/primecoinMiner/stats.cpp: In function âvoid NEWnotifyCentralServerofShare(unsigned int, float, char*)â:
src/primecoinMiner/stats.cpp:222: warning: deprecated conversion from string constant to âchar*â
src/primecoinMiner/stats.cpp:224: warning: deprecated conversion from string constant to âchar*â
src/primecoinMiner/stats.cpp:233: warning: deprecated conversion from string constant to âchar*â
src/primecoinMiner/stats.cpp:235: warning: deprecated conversion from string constant to âchar*â
src/primecoinMiner/stats.cpp:238: warning: deprecated conversion from string constant to âchar*â
src/primecoinMiner/stats.cpp:240: warning: deprecated conversion from string constant to âchar*â
src/primecoinMiner/stats.cpp:242: warning: deprecated conversion from string constant to âchar*â
src/primecoinMiner/stats.cpp:250: warning: deprecated conversion from string constant to âchar*â
src/primecoinMiner/stats.cpp:252: warning: format â%sâ expects type âchar*â, but argument 2 has type âfStr_t*â
src/primecoinMiner/stats.cpp:256: warning: deprecated conversion from string constant to âchar*â
src/primecoinMiner/stats.cpp:264: warning: deprecated conversion from string constant to âchar*â
src/primecoinMiner/stats.cpp:217: warning: unused variable âprimesPerSecondâ
g++ -c -mtune=native -O3 -Wall -Wextra -std=c++0x -fomit-frame-pointer -I/usr/local/include -I/usr/include src/primecoinMiner/ripemd160.cpp -o src/primecoinMiner/ripemd160.o
g++ -c -mtune=native -O3 -Wall -Wextra -std=c++0x -fomit-frame-pointer -I/usr/local/include -I/usr/include src/primecoinMiner/sha256.cpp -o src/primecoinMiner/sha256.o
g++ -c -mtune=native -O3 -Wall -Wextra -std=c++0x -fomit-frame-pointer -I/usr/local/include -I/usr/include src/primecoinMiner/xptClient.cpp -o src/primecoinMiner/xptClient.o
src/primecoinMiner/xptClient.cpp: In function âvoid xptClient_sendWorkerLogin(xptClient_t*)â:
src/primecoinMiner/xptClient.cpp:108: warning: unused variable âusernameLengthâ
src/primecoinMiner/xptClient.cpp:109: warning: unused variable âpasswordLengthâ
g++ -c -mtune=native -O3 -Wall -Wextra -std=c++0x -fomit-frame-pointer -I/usr/local/include -I/usr/include src/primecoinMiner/xptClientPacketHandler.cpp -o src/primecoinMiner/xptClientPacketHandler.o
g++ -c -mtune=native -O3 -Wall -Wextra -std=c++0x -fomit-frame-pointer -I/usr/local/include -I/usr/include src/primecoinMiner/xptPacketbuffer.cpp -o src/primecoinMiner/xptPacketbuffer.o
src/primecoinMiner/xptPacketbuffer.cpp: In function âvoid xptPacketbuffer_finalizeWritePacket(xptPacketbuffer_t*)â:
src/primecoinMiner/xptPacketbuffer.cpp:228: warning: suggest parentheses around arithmetic in operand of |
g++ -c -mtune=native -O3 -Wall -Wextra -std=c++0x -fomit-frame-pointer -I/usr/local/include -I/usr/include src/primecoinMiner/xptServer.cpp -o src/primecoinMiner/xptServer.o
src/primecoinMiner/xptServer.cpp: In function âbool xptServer_receiveData(xptServer_t*, xptServerClient_t*)â:
src/primecoinMiner/xptServer.cpp:100: warning: comparison between signed and unsigned integer expressions
src/primecoinMiner/xptServer.cpp: At global scope:
src/primecoinMiner/xptServer.cpp:137: warning: unused parameter âxptServerâ
src/primecoinMiner/xptServer.cpp: In function âvoid xptServer_sendNewBlockToAll(xptServer_t*, unsigned int)â:
src/primecoinMiner/xptServer.cpp:166: warning: format â%uâ expects type âunsigned intâ, but argument 4 has type âuint64â
g++ -c -mtune=native -O3 -Wall -Wextra -std=c++0x -fomit-frame-pointer -I/usr/local/include -I/usr/include src/primecoinMiner/xptServerPacketHandler.cpp -o src/primecoinMiner/xptServerPacketHandler.o
src/primecoinMiner/xptServerPacketHandler.cpp:67: warning: unused parameter âxptServerâ
src/primecoinMiner/xptServerPacketHandler.cpp:67: warning: unused parameter âxptServerClientâ
g++ -c -mtune=native -O3 -Wall -Wextra -std=c++0x -fomit-frame-pointer -I./src/primecoinMiner/jhlib src/primecoinMiner/jhlib/customBuffer.cpp -o src/primecoinMiner/jhlib/customBuffer.o
g++ -c -mtune=native -O3 -Wall -Wextra -std=c++0x -fomit-frame-pointer -I./src/primecoinMiner/jhlib src/primecoinMiner/jhlib/fastString_eprintf.cpp -o src/primecoinMiner/jhlib/fastString_eprintf.o
src/primecoinMiner/jhlib/fastString_eprintf.cpp:11: warning: unused parameter âpadRightâ
src/primecoinMiner/jhlib/fastString_eprintf.cpp:11: warning: unused parameter âpadZeroâ
src/primecoinMiner/jhlib/fastString_eprintf.cpp:11: warning: unused parameter âwidthâ
src/primecoinMiner/jhlib/fastString_eprintf.cpp:24: warning: unused parameter âpadRightâ
src/primecoinMiner/jhlib/fastString_eprintf.cpp:24: warning: unused parameter âpadZeroâ
src/primecoinMiner/jhlib/fastString_eprintf.cpp:24: warning: unused parameter âwidthâ
src/primecoinMiner/jhlib/fastString_eprintf.cpp:39: warning: unused parameter âpadRightâ
src/primecoinMiner/jhlib/fastString_eprintf.cpp:39: warning: unused parameter âpadZeroâ
src/primecoinMiner/jhlib/fastString_eprintf.cpp:39: warning: unused parameter âwidthâ
src/primecoinMiner/jhlib/fastString_eprintf.cpp:56: warning: unused parameter âpadRightâ
src/primecoinMiner/jhlib/fastString_eprintf.cpp:128: warning: unused parameter âpadRightâ
src/primecoinMiner/jhlib/fastString_eprintf.cpp:284: warning: unused parameter âpadRightâ
src/primecoinMiner/jhlib/fastString_eprintf.cpp:284: warning: unused parameter âpadZeroâ
src/primecoinMiner/jhlib/fastString_eprintf.cpp:284: warning: unused parameter âwidthâ
src/primecoinMiner/jhlib/fastString_eprintf.cpp:293: warning: unused parameter âpadRightâ
src/primecoinMiner/jhlib/fastString_eprintf.cpp:293: warning: unused parameter âpadZeroâ
src/primecoinMiner/jhlib/fastString_eprintf.cpp:293: warning: unused parameter âwidthâ
src/primecoinMiner/jhlib/fastString_eprintf.cpp:303: warning: unused parameter âpadRightâ
src/primecoinMiner/jhlib/fastString_eprintf.cpp:375: warning: unused parameter âpadRightâ
src/primecoinMiner/jhlib/fastString_eprintf.cpp:428: warning: unused parameter âpadRightâ
src/primecoinMiner/jhlib/fastString_eprintf.cpp:484: warning: âcdeclâ attribute ignored
src/primecoinMiner/jhlib/fastString_eprintf.cpp:484: warning: unused parameter âoutâ
src/primecoinMiner/jhlib/fastString_eprintf.cpp:484: warning: unused parameter âformatâ
src/primecoinMiner/jhlib/fastString_eprintf.cpp:484: warning: unused parameter âlengthOutâ
src/primecoinMiner/jhlib/fastString_eprintf.cpp: In function âvoid esprintf(char*, char*, ...)â:
src/primecoinMiner/jhlib/fastString_eprintf.cpp:600: warning: âcharâ is promoted to âintâ when passed through â...â
src/primecoinMiner/jhlib/fastString_eprintf.cpp:600: note: (so you should pass âintâ not âcharâ to âva_argâ)
src/primecoinMiner/jhlib/fastString_eprintf.cpp:600: note: if this code is reached, the program will abort
src/primecoinMiner/jhlib/fastString_eprintf.cpp:608: warning: âboolâ is promoted to âintâ when passed through â...â
src/primecoinMiner/jhlib/fastString_eprintf.cpp:608: note: if this code is reached, the program will abort
src/primecoinMiner/jhlib/fastString_eprintf.cpp:624: warning: âfloatâ is promoted to âdoubleâ when passed through â...â
src/primecoinMiner/jhlib/fastString_eprintf.cpp:624: note: if this code is reached, the program will abort
g++ -c -mtune=native -O3 -Wall -Wextra -std=c++0x -fomit-frame-pointer -I./src/primecoinMiner/jhlib src/primecoinMiner/jhlib/packetBuffer.cpp -o src/primecoinMiner/jhlib/packetBuffer.o
g++ -c -mtune=native -O3 -Wall -Wextra -std=c++0x -fomit-frame-pointer -I./src/primecoinMiner/jhlib src/primecoinMiner/jhlib/fastString.cpp -o src/primecoinMiner/jhlib/fastString.o
src/primecoinMiner/jhlib/fastString.cpp: In function âchar** fStrTokenize(char*, char*)â:
src/primecoinMiner/jhlib/fastString.cpp:502: warning: array subscript has type âcharâ
g++ -c -mtune=native -O3 -Wall -Wextra -std=c++0x -fomit-frame-pointer -I./src/primecoinMiner/jhlib src/primecoinMiner/jhlib/hashTable_uint32.cpp -o src/primecoinMiner/jhlib/hashTable_uint32.o
g++ -c -mtune=native -O3 -Wall -Wextra -std=c++0x -fomit-frame-pointer -I./src/primecoinMiner/jhlib src/primecoinMiner/jhlib/simpleList.cpp -o src/primecoinMiner/jhlib/simpleList.o
g++ -c -mtune=native -O3 -Wall -Wextra -std=c++0x -fomit-frame-pointer -I./src/primecoinMiner/jhlib src/primecoinMiner/jhlib/simpleHTTP.cpp -o src/primecoinMiner/jhlib/simpleHTTP.o
g++ -mtune=native -O3 -Wall -Wextra -std=c++0x -fomit-frame-pointer -L/usr/local/lib -L/usr/lib -I/usr/local/include -I/usr/include -o jhprimeminer src/primecoinMiner/bn2.o src/primecoinMiner/bn2_div.o src/primecoinMiner/ticker.o src/primecoinMiner/jsonBuilder.o src/primecoinMiner/jsonClient.o src/primecoinMiner/jsonObject.o src/primecoinMiner/jsonParser.o src/primecoinMiner/jsonrpc.o src/primecoinMiner/prime.o src/primecoinMiner/main.o src/primecoinMiner/miner.o src/primecoinMiner/stats.o src/primecoinMiner/ripemd160.o src/primecoinMiner/sha256.o src/primecoinMiner/xptClient.o src/primecoinMiner/xptClientPacketHandler.o src/primecoinMiner/xptPacketbuffer.o src/primecoinMiner/xptServer.o src/primecoinMiner/xptServerPacketHandler.o src/primecoinMiner/jhlib/customBuffer.o src/primecoinMiner/jhlib/fastString_eprintf.o src/primecoinMiner/jhlib/packetBuffer.o src/primecoinMiner/jhlib/fastString.o src/primecoinMiner/jhlib/hashTable_uint32.o src/primecoinMiner/jhlib/simpleList.o src/primecoinMiner/jhlib/simpleHTTP.o -lgmp -lgmpxx -lcrypto -lssl -pthread -lcurl -lrt
/usr/bin/ld: skipping incompatible /usr/lib/libgmp.so when searching for -lgmp
/usr/bin/ld: skipping incompatible /usr/lib/libgmp.a when searching for -lgmp
/usr/bin/ld: skipping incompatible /usr/lib/libgmpxx.so when searching for -lgmpxx
/usr/bin/ld: skipping incompatible /usr/lib/libgmpxx.a when searching for -lgmpxx
/usr/bin/ld: skipping incompatible /usr/lib/libcrypto.so when searching for -lcrypto
/usr/bin/ld: skipping incompatible /usr/lib/libcrypto.a when searching for -lcrypto
/usr/bin/ld: skipping incompatible /usr/lib/libssl.so when searching for -lssl
/usr/bin/ld: skipping incompatible /usr/lib/libssl.a when searching for -lssl
/usr/bin/ld: skipping incompatible /usr/lib/libcurl.so when searching for -lcurl
/usr/bin/ld: skipping incompatible /usr/lib/libcurl.a when searching for -lcurl
/usr/bin/ld: skipping incompatible /usr/lib/librt.so when searching for -lrt
/usr/bin/ld: skipping incompatible /usr/lib/librt.a when searching for -lrt
/usr/bin/ld: skipping incompatible /usr/lib/libm.so when searching for -lm
/usr/bin/ld: skipping incompatible /usr/lib/libm.a when searching for -lm
/usr/bin/ld: skipping incompatible /usr/lib/libpthread.so when searching for -lpthread
/usr/bin/ld: skipping incompatible /usr/lib/libpthread.a when searching for -lpthread
/usr/bin/ld: skipping incompatible /usr/lib/libc.so when searching for -lc
/usr/bin/ld: skipping incompatible /usr/lib/libc.a when searching for -lc


Das Problem ist, wenn ich die dabei erstellte Datei starte kommt:

$ ./jhprimeminer
./jhprimeminer: /usr/lib64/libstdc++.so.6: version `GLIBCXX_3.4.9' not found (required by ./jhprimeminer)

Hab schon versucht glibc und libstdc++ zu installieren aber yum sagt das waere schon da:

Setting up Install Process
Package glibc-2.5-118.el5_10.2.x86_64 already installed and latest version
Package glibc-2.5-118.el5_10.2.i686 already installed and latest version
Nothing to do


Setting up Install Process
Package libstdc++-4.1.2-54.el5.x86_64 already installed and latest version
Package libstdc++-4.1.2-54.el5.i386 already installed and latest version
Nothing to do


Ich vermute, die installierten Versionen sind zu alt. Wenn ich eine neuere per Hand installieren will, kommt folgendes:

$ rpm -U libstdc++-4.3.2-7.x86_64.rpm
warning: libstdc++-4.3.2-7.x86_64.rpm: Header V3 DSA signature: NOKEY, key ID 4ebfc273
error: Failed dependencies:
libstdc++ < 4.2.0 is needed by (installed) compat-gcc-34-c++-3.4.6-4.1.x86_64
libstdc++ = 4.1.2 is needed by (installed) libstdc++44-devel-4.4.7-1.el5.x86_64
libstdc++ = 4.1.2-54.el5 is needed by (installed) libstdc++-devel-4.1.2-54.el5.x86_64
libstdc++ = 4.1.2-54.el5 is needed by (installed) libstdc++-devel-4.1.2-54.el5.i386
libstdc++ = 4.1.2-54.el5 is needed by (installed) gcc-c++-4.1.2-54.el5.x86_64


Gibt es denn eine Moeglichkeit mehrere Versionen nebeneinander zu installieren?

Waere fuer jede Idee dankbar!

Alexander

Terrarist
2013-12-05, 14:29:17
Gibt es denn eine Moeglichkeit mehrere Versionen nebeneinander zu installieren?


Du könntest dich mit Docker (https://www.docker.io/) beschäftigen, ist ein Frontend um Linux Container "einfach" aufzusetzen, und somit Programme und deren Abhängigkeiten vom System zu isolieren. Das coole daran ist dass es dann auch auf anderen Distros läuft wo Docker als Schnittstelle installiert ist, kannst also den ganzen Container (Programm + Abhängigkeiten) verschieben wie du willst. Im Gegensatz zum Virtualisieren hast du kaum Overhead.

Hab bis jetzt nur oberflächlich damit rumexperimentiert, also keine eigenen Container erstellt. Kann dir da also nicht wirklich weiterhelfen. Ist wohl momentan ziemlich gefragt dieses Programm, quasi Hype.

Btw, CentOS 6.5 dürfte Docker unterstützen, da auch RH es mit 6.5 erstmalig unterstützt.

Simon
2013-12-05, 17:34:41
Das Problem ist, wenn ich die dabei erstellte Datei starte kommt:

$ ./jhprimeminer
./jhprimeminer: /usr/lib64/libstdc++.so.6: version `GLIBCXX_3.4.9' not found (required by ./jhprimeminer)
Mhm, also das hat nix mit glibc zu tun, sondern mit libstdc++.
Das Build Log weiter oben ist am Ende auch interesant: Warum nimmt er nicht die ganzen Libraries zum Linken?
Nimmst du einen anderen gcc als der, der fuer die System Libraries verwendet wurde?

Lokadamus
2013-12-05, 18:19:39
Such auf deinem System mal nach der Datei "GLIBCXX*", da müsste irgendwas sein und das dürfte die falsche Version sein.

So wie es aussieht hast du die falsche Version von GCC am laufen.
http://superuser.com/questions/652116/glibcxx-3-4-14-missing-for-garrys-mod-on-centos

Gast
2013-12-05, 18:30:51
Kann man das System denn nicht updaten ala apt-get upgrade?

Milchkanne
2013-12-06, 09:10:21
Docker wird wohl nicht helfen, dazu wird das Linux wohl zu alt sein.
"GLIBCXX" ist natürlich auch nicht die richtige Datei, sondern libstdc++.so.
Mir scheint irgendwie, dass da beim Kompillieren 32 und 64 Bit durcheinandergeworfen wurden.
"/usr/lib64/libstdc++.so.6" referenziert ja die 64 Bit Lib, du scheinst also ein 64 Bit system zu haben und ein 64 Bit Programm kompiliert zu haben. Dem Linker sagst du aber, er soll nur in den 32 Bit Verzeichnissen gucken "-L/usr/local/lib -L/usr/lib".
Oder bist du nur auf 32 Bit und hast irgendwie dennoch 64er Libs installiert?

Simon
2013-12-06, 17:19:51
Standard-Pfade wie /usr/lib und /usr/include brauchen in der Regel nicht separat angegeben werden.

Melbourne, FL
2013-12-06, 18:37:02
Standard-Pfade wie /usr/lib und /usr/include brauchen in der Regel nicht separat angegeben werden.

Das war der richtige Tipp...hatte zusaetzlich in einem Linux-Forum nachgefragt und dort dieselbe Antwort bekommen...und das war es dann auch:

http://www.linuxquestions.org/questions/showthread.php?p=5076340

Trotzdem vielen Dank fuer Eure Beitraege!

Alexander