не могу заставить мой код работать из книги по программированию (c ++) - PullRequest
1 голос
/ 11 марта 2010

я получил новую книгу по программированию (многоядерное программирование от Кэмерон Хьюз, Трейси Хьюз). пока у меня нет одной из их программ для работы, их книга говорит, что она должна работать на 99% компьютеров, так что я немного запутался, но в конце каждой программы в своей книге у них есть «инструкции по компиляции и компоновке» ... мне нужно ввести это? это выглядит примерно так: "C ++ -o guess_it guess_it.cc". код, который я сейчас выполняю:

#include <iostream>
#include <windows.h>
#include <string>
#include <spawn.h>
#include <sys/wait.h>

using namespace std;

int main(int argc,char *argv[],char *envp[])
{

 pid_t ChildProcess;
 pid_t ChildProcess2;
 int RetCode1;
 int RetCode2;
 int Value;
 RetCode1 = posix_spawn(&ChildProcess,"find_code",NULL,
                        NULL,argv,envp);
 RetCode2 = posix_spawn(&ChildProcess2,"find_code",NULL,
                        NULL,argv,envp);
 wait(&Value);
 wait(&Value);
 return(0);
 }

Я использую Windows 7 (32-разрядную версию), двухъядерный процессор AMD Athion X2 7550, выпуск VC ++ 2008 Express. я получаю следующую ошибку: фатальная ошибка C1083: не удается открыть включаемый файл: 'spawn.h': такого файла или каталога нет

кто-нибудь знает, почему я не могу запустить свой код? мне нужно что-то скачать? потому что я читал книгу и ничего не видел о загрузке, но я могу ошибаться. (

Ответы [ 2 ]

3 голосов
/ 11 марта 2010

Похоже, что эта книга использует потоки POSIX. Visual Studio по умолчанию использует Windows Threading, который имеет совершенно другой API.

Скорее всего, вам просто нужно получить копию библиотеки POSIX Thread для Windows . Это будет включать spawn.h и соответствующие файлы lib для вас.

1 голос
/ 11 марта 2010

Простите, если я неправильно истолковываю ваш уровень опыта здесь, но звучит так, как будто вы начинающий с этим языком.

Пример инструкции по компиляции и ссылке в книге

C++ -o guess_it guess_it.cc

- это пример вызова компилятора и компоновщика из командной строки. Если вы используете Visaul C ++, то IDE автоматизирует процесс компиляции и компоновки, когда вы нажмете кнопку «build», поэтому вам не нужно беспокоиться об этом из командной строки.

Об ошибке, которую вы видите в VC ++:

Компилятор говорит вам, что он не может найти заголовочный файл spawn.h, который вы сказали ему, что ваша программа нуждается в строке

#include <spawn.h>

Как уже упоминалось на этой странице, spawn.h - это файл, предоставляемый стандартными библиотеками POSIX и содержащий функциональные возможности для порождения новых процессов.

С уважением, для меня это звучит из того, как вы задали свой вопрос («инструкции по компиляции и компоновке»), как будто вы действительно не понимаете, что делаете. Прежде чем углубиться в многопоточность в C ++, я рекомендую сделать шаг назад и найти книгу для начинающих по C ++ с использованием Visual Studio и начать с самого начала. Боюсь, вы не добьетесь большого прогресса, если не потратите время на изучение основ, а использование компилятора является настолько же фундаментальным, насколько это возможно!

Удачи!

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...