Форум русскоязычного сообщества Ubuntu


Увидели сообщение с непонятной ссылкой, спам, непристойность или оскорбление?
Воспользуйтесь ссылкой «Сообщить модератору» рядом с сообщением!

Автор Тема: Обсуждение: "Как скомпилировать свой первый Hello World"  (Прочитано 8515 раз)

0 Пользователей и 1 Гость просматривают эту тему.

Оффлайн Обедающий философ

  • Активист
  • *
  • Сообщений: 286
    • Просмотр профиля
    • Искусственная жизнь по-русски
Господа!

Как надо изменить обсуждаемый makefile, чтобы на выходе получалось so? Поиском в интернете на эту тему очень плохо ищется. А последовательно осваивать make и пр. я ещё морально не готов.

Строго говоря, хочу подружить С++ с питоном при помощи boost.python, но не хочу осваивать bjam.

Заранее благодарен.
Боится смерти тот, кто мало сделал за свою жизнь. /Фидель Кастро/

Оффлайн Adrian Decker

  • Новичок
  • *
  • Сообщений: 16
  • N.A.Y.
    • Просмотр профиля
Написал программу, файл подключил, нэймспэйс прописал, а компилятор всё равно ругается:
g++: no input files
Чем вызвана проблема и как её устранить?


Оффлайн yorik1984

  • Заслуженный пользователь
  • Почётный модератор
  • Старожил
  • *
  • Сообщений: 1592
  • Кто не хочет, ищет причины
    • Просмотр профиля
http://www.opennet.ru/docs/RUS/zlp/zlp-prog.html.gz
а может быть это автор первой половины статьи?
 не? >:(

Пользователь решил продолжить мысль 04 Ноября 2011, 02:14:13:
Код: (bash) [Выделить]
#include <iostream>
// пространство имен std объявляется в заголовочном файле iostream
using namespace std;
int main()
{
    cout << "Hello, world!" << endl;
    return 0;
}
Попробуй так
using namespace std;
или так
Код: (bash) [Выделить]
#include <iostream>

int main()
{
    std::cout << "Hello, world!" << std::endl;
    return 0;
}
так лучше.

http://ru.wikipedia.org/wiki/Программа_Hello_world
« Последнее редактирование: 24 Ноября 2011, 23:19:16 от yorik1984 »

Оффлайн Adrian Decker

  • Новичок
  • *
  • Сообщений: 16
  • N.A.Y.
    • Просмотр профиля
Чёт всё равно тем же самым ругается.
Вот код программы:
#include <iostream>

//using namespace std;

int main () {
std:: cout <<"Fuck out!"<< std::endl;
return 0;
}
Есть сомнения по поводу того, правильно ли встали библиотеки для С++ - в самой папке Include их нет - они лежат в подкаталоге /c++/4.4

Оффлайн yorik1984

  • Заслуженный пользователь
  • Почётный модератор
  • Старожил
  • *
  • Сообщений: 1592
  • Кто не хочет, ищет причины
    • Просмотр профиля
какой командой компилируете?

Оффлайн Adrian Decker

  • Новичок
  • *
  • Сообщений: 16
  • N.A.Y.
    • Просмотр профиля
Заработало! Очевидно, были неточности в подаче команд. Спасибо!

Оффлайн Neschur

  • Новичок
  • *
  • Сообщений: 1
    • Просмотр профиля
Подскажите пожалуйста, как сделать так, чтобы .o файлы складывались в obj/ , и как изменить имя результата?

Оффлайн ANtlord

  • Новичок
  • *
  • Сообщений: 16
    • Просмотр профиля
А нормально то, что все исходники перекомпилируются каждый раз? Даже тогда, когда я изменяю лишь один файл?

Оффлайн Yurror

  • Старожил
  • *
  • Сообщений: 1966
    • Просмотр профиля
Некропостеры атакуют!

ANtlord,
Подробнее пожалуйста - телепаты в отпуске.
Ты можешь менять заголовочный файл включенный во все модули, тогда будут перестроены все объектники.

HOWTO :: Как правильно задавать вопросы

Оффлайн Delit

  • Новичок
  • *
  • Сообщений: 18
    • Просмотр профиля
А почему в примере
Цитировать
all: myprog

myprog: myprog.o myclass.o
   g++ -o myprog myprog.o myclass.o

myprog.o: myprog.cpp
   g++ -o myprog.o myprog.cpp

myclass.o: myclass.cpp
   g++ -c -o myclass.o myclass.cpp
у цели myprog.o отсутствует флаг компиляции -с, разве g++ не попытается собрать исполнительный файл в этом случае?
« Последнее редактирование: 21 Марта 2014, 19:42:17 от Delit »

Оффлайн keramik

  • Новичок
  • *
  • Сообщений: 2
    • Просмотр профиля
Добрый день.
Выполняю лабораторные работы по С++ в университете. На компьютере установлена Ubuntu 12.04 LTS x64. Не получается выполнить простейший код, выводящий Hello World.
Мои действия:
1. Для работы выбрал Geany
2. Установил build-essential
3. Установил g++
4. Создал Makefile, следуя инструкции автора топика. У меня получился такой:
TARGET=$(shell basename `pwd`)
SOURCES=$(wildcard *.cpp)
OBJECTS=$(SOURCES:%.cpp=%.o)

all: $(TARGET)

$(OBJECTS): $(SOURCES)

$(TARGET): $(OBJECTS)
        $(CXX) -o $(TARGET) $(LDFLAGS) $(OBJECTS) $(LOADLIBES) $(LDLIBS)

clean:
        $(RM) $(OBJECTS) $(TARGET)

.PHONY: all clean

5. Разместил файл Makefile в директорию с проектом
6. Создал в проекте свой файл new1, в который вписал код:
#include <iostream>
using namespace std;
int main()
{   cout <<"Hello world!" <<endl;
    return 0;
}

7. Запуская "Сделать" - Shift+F9 получаю сообщение:
Цитировать
g++: фатальная ошибка: не заданы входные файлы
компиляция прервана.
make: ***[pwd] Ошибка 4
Сборка завершилась с ошибкой
8. А если без сборки нажать "Выполнить" - F5, то терминал выдаёт следующее:
Цитировать
./geany_run_script.sh: 5: .geany_run_script.sh: ./new1: Permission denied
----------
(program exited with code: 126)

Если второе сообщение хотя бы говорит мне о том, что надо настраивать права доступа geany на выполнение команды, то как настроить Makefile так, чтобы он работал, пока идей нет.
поделитесь опытом в решении подобного.
Спасибо.

 

Страница сгенерирована за 0.024 секунд. Запросов: 22.