основной файл: main.cpp
#include "file.h"
#include <iostream>
using namespace std;
int main(int argc, char* argv[]){
func1();
return 0;
};
заголовочный файл: file.h
void func1();
file.cpp файл с кодом file.h
#include <iostream>
void func1(){
std::cout << "1";
};
так вот при попытке скомпилировать код с помощью команды (g++ main.cpp) выводи сообщение что не знает что за функция func1(), а вот при использовании (g++ main.cpp file.cpp) все работает, так вот закралось сомнение а правильно ли так компилить, поскольку если в дальнейшем в файлов будет от 10 и все их нужно прописывать после (g++ main.cpp ...)? использую MinGW версия gcc-6.3.0
Совершенно верно, если файлов будет 10, то все 10 придется прописывать в командной строке компилятора
g++ file1.cpp file2.cpp ... file9.cpp main.cpp
Такая командная строка на самом деле последовательно выполняет два этапа трансляции: сначала компилирует индивидуальные .cpp
файлы в .o
файлы, а затем собирает полученные .o
файлы в финальную программу.
При желании вы можете использовать опцию -c
для того, чтобы разделить эти два этапа: сначала скомпилировать .cpp
файлы в .o
файлы по одному
g++ -c file1.cpp
g++ -c file2.cpp
...
g++ -c file9.cpp
g++ -c main.cpp
а затем выполнить финальную сборку. Однако для финальной сброки вам все равно придется передать все полученные .o
файлы в g++
(или в ld
)
g++ file1.o file2.o ... file9.o main.o
Т.е. как ни верти, некий шаг, на котором вам придется перечислить "много файлов" в командной строке, все равно будет.
Избавиться от чересчур длинных перечислений имен файлов помогут библиотеки, но на самом деле ничего страшного в таких длинных командных строках нет.
Да, g++ main.cpp file.cpp
- правильно.
если в дальнейшем в файлов будет от 10 и все их нужно прописывать после (g++ main.cpp ...)?
Начните использовать IDE, тогда не будет необходимости ничего вручную прописывать.
Виртуальный выделенный сервер (VDS) становится отличным выбором
Описать функцию, которая в новом массиве получит только положительные значения элементов исходного массиваИспользовать механизм указателей
В общем, есть массив и нужно в него подобавлять элементовВопрос:каким образом это осуществить?
Можно ли как-то узнать, сколько строчек в функции? Возможно, рекурсивно посчитать все строчки для всех вызываемых подфункцийНадо подобное...
У меня имеется файл, в котором я записал квадратную матрицу через пробелы в виде