LINUX.ORG.RU

Сообщения phrm

 

как использовать статистические библиотеки?

Имеется проект (С++) из нескольких фаилов + main.cpp. Все обьектные файлы (кроме main.o) я собрал в одну библиотеку путем
ar rcs libmoj.a *.o
Теперь я делаю что то в роде
gcc -L/path/to/lib/ -lmoj main.cpp
а он ругается про undefined reference'ы, хотя когда я пытаюсь построить программу целеком, никаких проблем нет.

Что я делаю не то?

phrm
()

istringstream не пашет

Я уже зеленею он злости.
Помогите, пожалуйста!


#include <iostream>
#include <sstream>
#include <string>
using namespace std;
int main(int argc, char *argv[])
{
string s = "this is a sample useless string";
string word;
(istringstream)(istringstream (s.substr(0,2))) >>word;
return 0;
}
$ gcc --version
gcc (GCC) 3.3.2 (Mandrake Linux 10.0 3.3.2-6mdk)
Copyright (C) 2003 Free Software Foundation, Inc.
This is free software; see the source for copying conditions. There is NO
warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
$ gcc -c zz.cpp
/usr/include/c++/3.3.2/bits/ios_base.h: In copy constructor `std::basic_ios<char, std::char_traits<char> >::basic_ios(const std::basic_ios<char, std::char_traits<char> >&)':
/usr/include/c++/3.3.2/bits/ios_base.h:668: error: `std::ios_base::ios_base(const std::ios_base&)' is private
zz.cpp:9: error: within this context
/usr/include/c++/3.3.2/streambuf: In copy constructor `std::basic_stringbuf<char, std::char_traits<char>, std::allocator<char> >::basic_stringbuf(const std::basic_stringbuf<char, std::char_traits<char>, std::allocator<char> >&)':
/usr/include/c++/3.3.2/streambuf:922: error: `std::basic_streambuf<_CharT, _Traits>::basic_streambuf(const std::basic_streambuf<_CharT, _Traits>&) [with _CharT = char, _Traits = std::char_traits<char>]' is private
zz.cpp:9: error: within this context
zz.cpp: In function `int main(int, char**)':
zz.cpp:9: error: no match for 'operator>>' in 'istringstream((&std::basic_string<_CharT, _Traits, _Alloc>::substr(typename _Alloc::size_type, typename _Alloc::size_type) const [with _CharT = char, _Traits = std::char_traits<char>, _Alloc = std::allocator<char>](0, 2)), (std::_Ios_Openmode)8) >> word'
/usr/include/c++/3.3.2/bits

phrm
()

временные обьекты

Kто скажет почему эта дрянь не компилируется, и чем принципиально отличается комбинация строк 10 и 11 от строки 13?
1#include <iostream>
2#include <cstdlib>
3#include <strstream>
4#include <string>
5using namespace std;
6int main(int argc, char *argv[])
7{
8 char s[]="this is a sample useless string";
9 char word[120];
10 istrstream is (s,5);
11 is>>word;//works till now ,
12 //but the following does not
13 istrstream (s+1,5)>>word;
14 //-do something with word
15 istrstream (s+2,5)>>word;
16 //-do something with word
17 istrstream (s+5,5)>>word;
18 //-do something with word
19 return 0;
22}

compiling zz.cpp (g++)
*compiling -fPIC (g++)
zz.cpp: In function `int main(int, char**)':
zz.cpp:13: error: no match for 'operator>>' in 'istrstream(((&s) + 1), 5) >> word'
30*/usr/include/c++/3.3.2/bits/istream.tcc:86: error: candidates are: std::basic_istream<_CharT, _Traits>& std::basic_istream<_CharT, _Traits>::operator>>(std::basic_istream<_CharT, _Traits>&(*)(std::basic_istream<_CharT, _Traits>&)) [with _CharT = char, _Traits = std::char_traits<char>]
std::basic_istream<_CharT, _Traits>& std::basic_istream<_CharT, _Traits>::operator>>(std::basic_ios<_CharT, _Traits>&(*)(std::basic_ios<_CharT, _Traits>&)) [with _CharT = char, _Traits = std::char_traits<char>]
..........................

phrm
()

какой namespace?

Я пытаюсь скомпилировать программу написанную на gcc2.XX, используя gcc3. В следующей строке:
template<class T = BTL_REAL, class Alloc = alloc>
class matrix
{.............};
компайлер жалуется на то что тип alloc ему неизвестен. В STL тип alloc прописывается на каждом шагу в качестве дефолтивного типа, значит надо исползовать какой-то namespace, кроме std, а какой не знаю.

Help

phrm
()

Не пашет удаленный принтер

Две машины в сети: одна redhat7.3, к ней подключен принтер (он исправно работает). Вторая::: mandrake10.0. Во второй я добовляю Remote LPD printer, прописываыу hostname и посылаыу пробный лист на печать. Все работает нормально, джоб на принтере успешно заканчивается без жалоб, НО.... сам принтер не реагирует и ни чего не печатает,хотя с родного компа он,как я уже сказал, работает.
Подсобите советом.
ПС - я пробовал отменять фаервол - не помогло
$ sudo cat /etc/cups/printers.conf
# Printer configuration file for CUPS v1.1.20
# Written by cupsd on Sun 02 May 2004 10:03:11 AM GDT
<Printer oki11>
Info
Location hostname
DeviceURI lpd://hostname:515/lp
State Idle
Accepting Yes
JobSheets none none
QuotaPeriod 0
PageLimit 0
KLimit 0
</Printer>

phrm
()

NT_STATUS_UNSUCCESSFUL

я пытаюсь установить самба принтер на новеньком Мандрэйке (10.0, official).
Почему-то ничего не печатается, а cups administration tool ругается каким-то
NT_STATUS_UNSUCCESSFUL


Подскажите чего не так

phrm
()

«undefined reference» в новеньком kdevelop3

установил mandrake10.0 CE с kdevelop3, теперь не могу собрать простейший проект в C++, который работал в kdevelop2.
Я сделал: сделал новый проект C++ и добавил к нему нужные фаилы.
Все фаилы компилируются, но при build'е, выдаются кучи ошибок undefined reference.
Дерево в automake manager выглядит так:
Header in noinst
test1 (Program in bin)
|-triangle.h
|-triangle.cpp
|-test1.cpp
-------------------------
HELP

phrm
()

аналог перловских open2 и open3 в C++

В перле это так просто: нужно посылать команды в какую-то программы и читать её output? Пишешь sebe open2(\*R, \*W, $command), и поехали. А вот как это в ц++ сделать?, желательно при помощи stream`ов. Как я понимаю, sockets это не совсем то, так как и сервер и клиент должен быть написан мною, а у меня задача иная - общатся с чужой (и закрытой) CLI программой. Может ли кто-нибудь поделится кусочком кода или ссылкой на готовый ресурс на сети?

phrm
()

Java - Ламерский вопрос.

Блин, совсем джаву забыл. Пытаюсь написать double linked list, но ничего не выходит. Ткните носом в ошибки:

[temp]$ cat Node.java
package temp;
public class Node {
protected Object _data;
protected Node _next;
protected Node _previous;
/**Default constructor. Constructs an empty node*/
public Node(){
_data=null;
_next=null;
_previous=null;
}
/**Overloaded constructor*/
public Node(Object o, Node p, Node n){
_data=new Object (o);
_next=new Node (n);
_previous=new Node (p);
}
}
[temp]$ javac Node.java
Node.java:14: Object() in java.lang.Object cannot be applied to (java.lang.Object)
_data=new Object (o);
^
Node.java:15: cannot resolve symbol
symbol : constructor Node (temp.Node)
location: class temp.Node
_next=new Node (n);
^
Node.java:16: cannot resolve symbol
symbol : constructor Node (temp.Node)
location: class temp.Node
_previous=new Node (p);
^
3 errors
[temp]$

phrm
()

Не могу поймать fstat

Помогите, люди добрые: не могу поимать fstat. Ни как не могу найти ошибку:
[me]$ cat fakestat.c
/* fakestat.c*/
#include <sys/stat.h>
#define BUFFERLEN 256
int fstat (int fd, struct stat *statbuf);
int fstat (int fd, struct stat *statbuf){
return 10;
}
[me]$ cat stattest.c
#include <fcntl.h>
/*stattest.c*/
#include <sys/stat.h>
#include <errno.h>
#include <unistd.h>
#include <stdio.h>
#include <stdlib.h>
#include <time.h>
#include <dlfcn.h>
int main(int argc, char *argv[])
{
char fileName[120];
struct stat statbuf, realstatbuf;
char timeBuf[50];
int a, statRet;

strcpy(fileName, "/etc/passwd");
a=open (fileName,O_RDONLY );
if (statRet=fstat(a, &statbuf)){
printf("could not fstat %s: %s\n", fileName, strerror(errno));
}
printf ("stat returned %d\n",statRet);
printf("passwd was accessed on %s\n",ctime(&statbuf.st_atime));
return 0;
}
[me]$ cat Makefile
#Makefile
CC = gcc
all: lib testprog test
lib: fakestat.c
${CC} -nostartfiles -shared -fPIC -Wl,-soname,libfakestat.so.1 -o libfakestat.so.1 fakestat.c -ldl -lm

testprog: stattest.c
${CC} -o stattest stattest.c

test: lib testprog
@echo "Running the test program with no faked stat specified"
@LD_PRELOAD=./libfakestat.so.1 ./stattest
@echo
@echo "Running the test program with absolute date 2003-01-01 10:00:05 specified"
@LD_PRELOAD=./libfakestat.so.1 FAKETIME="2003-01-01 10:00:05" ./stattest[me]$ make
gcc -nostartfiles -shared -fPIC -Wl,-soname,libfakestat.so.1 -o libfakestat.so.1 fakestat.c -ldl -lm
gcc -o stattest stattest.c
Running the test program with no faked stat specified
stat returned 0
passwd was accessed on Wed Feb 25 01:34:21 2004


Running the test program with absolute date 2003-01-01 10:00:05 specified
stat returned 0
passwd was accessed on Wed Feb 25 01:34:21 2004

phrm
()

пакеты KDE для mandrake

есть ли где-то $SUBJ?
если нет, пробовал ли кто-то ставить пакеты от федоры?

phrm
()

самба и имена в машин в сети

как сделать так, что-бы работала комманда:
#smbclient -L compname -U printer
без надобности указывать IP при помощи опции -I? (smbclient -I AAA.AAA.AAA.AAA -L compname -U printer )

Спасибо

phrm
()

shell account для irc

Я получаю бесплатный интернет от моей работы. Недавно начальство , из экономии, решило закрыть порты от IRC (667, кажется). В принципе можно соедининться через открытые прокси, потдерживаюсщие connect, но сервера irc.freenode.net (а именно эта сеть меня интересует) блокируют открытые прокси. Подскажите, где можно получить shell account (можно платный), который даст возможность irc-чата, не используя открытые прокси.

phrm
()

проблемы с принтером

Помогите пожалуйста, второй день бьюсь и ни чего не получается.
Вот такуй сетуп: 3 компа в большой сети на работе. Один win98, на котором стоит принтер, один RH 7.3 и один Mandrake 9.2. Печать с RH работает как часики, а вот с Mdk - ёк.
В Mdk я конфигурировал принтер через мандракевский гуй. Он нашел кучу принтеров по всей нашей не маленькой конторе, но нужный принтер - не нашел. Пришлось настраивать в ручную.
Получаю ошибку:
"Unable to connect to SAMBA host, will retry in 60 seconds...ERROR: cli_connect() failed..."
Для проверки сделал:
smbclient -L compname -U printer
added interface ip=XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX

error connecting to YYYYYYYYYYYYYYYY (No route to host)
Error connecting to ZZZZZZZZZZZZZZZZ (No route to host)
Connection to compname failed

(причем ни один из указанных IP не является IP нужного компютера)

А кокда добавил IP, сработало:
# smbclient -I AAA.AAA.AAA.AAA -L compname -U printer
added interface ip=xxx.xxx.xx
Password:

Sharename Type Comment
--------- ---- -------
OKIPAGE Printer
........................................

Хотя в конфигуратции принтера я ясно указал IP, workgroup и все остальное, вышеуказанная ошибка все есче существует и принтер не печатает.
HELP

phrm
()

система виснет (из-за kswapd )

Пишу программу, которая по ошибке жрет всю память. После нескольких таких запусков, врубается kswapd и система начинает мигать лампочкой харда и перестает реагировать. В top'е успел заметить что от RAMa (всего 256 мега) осталось процентов 30, а от swap-а (512 Мега на одном диске и целый старый диск на 800 мега) осталось 0 килобаитов). Подскажите, пожалуйста, чего делать.

У меня Mandrake 9.2 с родным кернелом

phrm
()

ротация точек в пространстве

[Тут, может год назад, пробегал похожий вопрос, так что кто знает, помогите, пожалуйста.]

Имеем треугольник с вершинами A[0;0;0], B[Xb;0;0], C[Xc,Yx,0]. Треугольник повернули в округ оси [i;j;k] ((i^2+j^2+k^2)==1) на alpha градусов (или радианов) и теперешние его координаты: A'[0;0;0], B'[Xb'Yb'Zb'], C[Xc'Yc'Zc']. Как из этой информации можно восстановить ось вращения ([i,j,k]) и угол alpha?

Заранее спасибо.

P.S Пожалуйста не гоните меня учить матчасть: формального образования по математике у меня практически нету. Хотя это было-бы и полезно, но неделю на вникание в алгебру, только для решения этой задачи, мне немножко жалко.

phrm
()

как изменять данные на лету?

у меня есть vector<float>, который держит значения углов в радианах. Что-бы распечатать все значения вектора делаю обычно так:

copy (radians.begin(),radians.end(),ostream_iterator<float>(cout," "));

НО... печатать их надо в градусах.
По идее, можно сделать так:
for (vector<float>::const_iterator i=radians.begin();i!=radians.end();++i){
cout<<(*i)*PI/180.0<<' ';
}
Как видите, это очень громоздко и неудобно, поэтому очень хочется добится того-же результата используя copy, вот только не знаю как.
Помогите, пожалуйста.

phrm
()

RSS подписка на новые темы