LINUX.ORG.RU

Сообщения hight-technology

 

string c пробелами в char**

Имеется стока типа string, в которой лексемы разделены пробелами. Требуется их превратить в переменную argvs типа char *argvs[].

Помогите сделать рабочий код, пока не очень получается:

	string s = "one two";
	stringstream stream( s );
	string lex ;
	
	char **lexs[1024][1024];
        int i = 0;
	while( getline( stream, lex, ' ')) {
	   memset( param[i], lex.c_str(), lex.size() );
	   ++i;
	} 
	

 ,

hight-technology
()

составной make

Помогите для сборки целей module*.o использовать правила, хранящиеся в каталоге module.

├── module
│   ├── Makefile
│   ├── module1.cpp
│   ├── module1.h
│   ├── module1.o
│   ├── module2.cpp
│   ├── module2.h
│   └── module2.o
├── prog
│   ├── main.cpp
│   ├── main.o
│   ├── Makefile
│   └── prog1

$ cat ./prog/Makefile 
CXX=c++

TARGETS=prog1 

PROG=./main.cpp 
MOD=../module/module1.cpp

.PHONY: module clean

all: $(TARGETS)

module:
	$(MAKE) -C ../module CXX=$(CXX) 


PMOBJ=$(PROG:.cpp=.o) $(MOD:.cpp=.o)  
prog1: $(PMOBJ) $(MOD:.cpp:.h) module
	$(CXX) -o $@ $(PMOBJ)

clean:
	rm -f $(PROG:.cpp=.o) 
	rm -f $(MOD:.cpp=.o)


$ cat ./module/Makefile 
OBJS=module2.o module1.o

all: $(OBJS)

$(OBJS): %.o: %.cpp %.h
	$(CXX) --std=c++11 -c -o $@ $^

сейчас, на примере только module1.o, при вызове make из prog используются правила сборки module1.o по умолчанию. А нужно, чтобы файлы и module собирались по правилам ./module/Makefile:

$ make
c++    -c -o main.o main.cpp
c++    -c -o ../module/module1.o ../module/module1.cpp
make -C ../module CXX=c++ 
make[1]: Вход в каталог `/home/test/first/module'
make[1]: Цель `all' не требует выполнения команд.
make[1]: Выход из каталога `/home/test/first/module'
c++ -o prog1 ./main.o ../module/module1.o  

 

hight-technology
()

переменные make

Как избавиться от лишней переменной PROG_MOD в 5-й строке?

1) PROG=./prog/main.cpp 
2) MOD=./module/module1.cpp
3) TEST=./test/test_main.cpp
4) 
5) PROG_MOD=$(PROG) $(MOD) 
6) prog1: $(PROG_MOD:.cpp=.o) $(MOD:.cpp:.h)
	$(CXX) -o $@ $^ 

 

hight-technology
()

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