Форум программистов, компьютерный форум CyberForum.ru

Возможно ли запустить приложение в linux? - C++

Восстановить пароль Регистрация
Другие темы раздела
C++ Рекурсивная функция, возвращающая указатель на объект http://www.cyberforum.ru/cpp-beginners/thread1492488.html
Есть рекурсивная функция (заполняющая двоичное дерево) Node* fill(int i){ //Возвращаемое значение ????? Node node(lines.key); //создали элемент на индексе if(lines.left){ node.addLeft(fill(lines.left)); } if(lines.right){ node.addRight(fill(lines.right)); }
C++ Потоки и сокрытие данных Всем доброго времени суток. Появился вопрос, касающийся потоков. Есть класс, в котором имеются функции для вывода внутренних данных в поток. Всё работает, но функция вывода является дружественной и возвращает поток вывода, чтобы обеспечить каскадные вызовы. Тогда, если я правильно понимаю, эта функция становится глобальной и доступной пользователю класса. Как обеспечить каскадные вызовы и... http://www.cyberforum.ru/cpp-beginners/thread1492476.html
C++ Машинное представление графов
1 курс. Практика Задание такое: Разработать и реализовать windows - приложение, которое определяет, является ли бинарное отношение, заданное орграфом симметричным и рефлексивным. Граф задан матрицей смежности. Предусмотреть возможность ввода матрицы смежности в клавиатуры из текстового файла. можно делать как си++, так и в паскале, делфи и пр. Помогите, хотя бы с алгоритмом:С
Расшифровка ТЗ C++
Простите, за идиотский вопрос, но я немного не понимаю, что здесь требуется. В общем, есть структура, и требуется написать файл с запросами на удаление из одного бинарного файла, насколько я понял. Но непонятно, какое оформление от меня требуется. Вот ТЗ: Создать с клавиатуры файл для тестирования функции удаления данных из бинарного файла. В каждую строку этого файла записать значение...
C++ Задача на поиск минимального\максимального числа http://www.cyberforum.ru/cpp-beginners/thread1492416.html
Здравствуйте. Начал учить с++ относительно недавно. Решал задачу на поиск максимального и минимального числа. Вот решение: /*Дано четыре числа, вывести на экран то, которое меньшее и то, которое большее с соответствующим обобщением: большее число ___ меньшее число ___*/ #include <iostream> using namespace std;
C++ Fatal error LNK1120: 2 неразрешенных внешних элементов привет всем , столкнулся с такой проблемой , 1>main.obj : error LNK2001: неразрешенный внешний символ "_D3DXCreateTextureFromFileInMemory@16" 1>main.obj : error LNK2001: неразрешенный внешний символ "_D3DXAssembleShader@28" 1>C:\Users\121\1111\674567474746\Release\1.dll : fatal error LNK1120: 2 неразрешенных внешних элементов все что можно подключил но при компиляции все равно ошибки , как... подробнее

Показать сообщение отдельно
Fangod
8 / 8 / 0
Регистрация: 07.10.2011
Сообщений: 154
03.07.2015, 16:52     Возможно ли запустить приложение в linux?
Я пишу в VS 2013
Ниже простой код web-сервера полностью скопированного из примера
Смогу ли я его потом скомпилировать и запустить на linux? Если нет, то как переносить код на другую платформу?


C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
#include <iostream>
#include <sstream>
#include <string>
 
#include <WinSock2.h>
#include <WS2tcpip.h>
 
// Необходимо, чтобы линковка происходила с DLL-библиотекой 
// Для работы с сокетам
#pragma comment(lib, "Ws2_32.lib")
 
using std::cerr;
 
int main() {
    WSADATA wsaData; // служебная структура для хранение информации
    // о реализации Windows Sockets
    // старт использования библиотеки сокетов процессом
    // (подгружается Ws2_32.dll)
    int result = WSAStartup(MAKEWORD(2, 2), &wsaData);
 
    // Если произошла ошибка подгрузки библиотеки
    if(result != 0) {
        cerr << "WSAStartup failed: " << result << "\n";
        return result;
    }
 
    struct addrinfo* addr = NULL; // структура, хранящая информацию
    // об IP-адресе слущающего сокета
 
    // Шаблон для инициализации структуры адреса
    struct addrinfo hints;
    ZeroMemory(&hints, sizeof(hints));
 
    hints.ai_family = AF_INET; // AF_INET определяет, что будет
    // использоваться сеть для работы с сокетом
    hints.ai_socktype = SOCK_STREAM; // Задаем потоковый тип сокета
    hints.ai_protocol = IPPROTO_TCP; // Используем протокол TCP
    hints.ai_flags = AI_PASSIVE; // Сокет будет биндиться на адрес,
    // чтобы принимать входящие соединения
 
    // Инициализируем структуру, хранящую адрес сокета - addr
    // Наш HTTP-сервер будет висеть на 8000-м порту локалхоста
    result = getaddrinfo("127.0.0.1", "8000", &hints, &addr);
 
    // Если инициализация структуры адреса завершилась с ошибкой,
    // выведем сообщением об этом и завершим выполнение программы 
    if(result != 0) {
        cerr << "getaddrinfo failed: " << result << "\n";
        WSACleanup(); // выгрузка библиотеки Ws2_32.dll
        return 1;
    }
 
    // Создание сокета
    int listen_socket = socket(addr->ai_family, addr->ai_socktype,
                               addr->ai_protocol);
    // Если создание сокета завершилось с ошибкой, выводим сообщение,
    // освобождаем память, выделенную под структуру addr,
    // выгружаем dll-библиотеку и закрываем программу
    if(listen_socket == INVALID_SOCKET) {
        cerr << "Error at socket: " << WSAGetLastError() << "\n";
        freeaddrinfo(addr);
        WSACleanup();
        return 1;
    }
 
    // Привязываем сокет к IP-адресу
    result = bind(listen_socket, addr->ai_addr, (int)addr->ai_addrlen);
 
    // Если привязать адрес к сокету не удалось, то выводим сообщение
    // об ошибке, освобождаем память, выделенную под структуру addr.
    // и закрываем открытый сокет.
    // Выгружаем DLL-библиотеку из памяти и закрываем программу.
    if(result == SOCKET_ERROR) {
        cerr << "bind failed with error: " << WSAGetLastError() << "\n";
        freeaddrinfo(addr);
        closesocket(listen_socket);
        WSACleanup();
        return 1;
    }
 
    // Инициализируем слушающий сокет
    if(listen(listen_socket, SOMAXCONN) == SOCKET_ERROR) {
        cerr << "listen failed with error: " << WSAGetLastError() << "\n";
        closesocket(listen_socket);
        WSACleanup();
        return 1;
    }
 
    // Принимаем входящие соединения
    int client_socket = accept(listen_socket, NULL, NULL);
    if(client_socket == INVALID_SOCKET) {
        cerr << "accept failed: " << WSAGetLastError() << "\n";
        closesocket(listen_socket);
        WSACleanup();
        return 1;
    }
 
    const int max_client_buffer_size = 1024;
    char buf[max_client_buffer_size];
 
    result = recv(client_socket, buf, max_client_buffer_size, 0);
 
    std::stringstream response; // сюда будет записываться ответ клиенту
    std::stringstream response_body; // тело ответа
 
    if(result == SOCKET_ERROR) {
        // ошибка получения данных
        cerr << "recv failed: " << result << "\n";
        closesocket(client_socket);
    } else if(result == 0) {
        // соединение закрыто клиентом
        cerr << "connection closed...\n";
    } else if(result > 0) {
        // Мы знаем фактический размер полученных данных, поэтому ставим метку конца строки
        // В буфере запроса.
        buf[result] = '\0';
 
        // Данные успешно получены
        // формируем тело ответа (HTML)
        response_body << "<title>Test C++ HTTP Server</title>\n"
            << "<h1>Test page</h1>\n"
            << "<p>This is body of the test page...</p>\n"
            << "<h2>Request headers</h2>\n"
            << "<pre>" << buf << "</pre>\n"
            << "<em><small>Test C++ Http Server</small></em>\n";
 
        // Формируем весь ответ вместе с заголовками
        response << "HTTP/1.1 200 OK\r\n"
            << "Version: HTTP/1.1\r\n"
            << "Content-Type: text/html; charset=utf-8\r\n"
            << "Content-Length: " << response_body.str().length()
            << "\r\n\r\n"
            << response_body.str();
 
        // Отправляем ответ клиенту с помощью функции send
        result = send(client_socket, response.str().c_str(),
                      response.str().length(), 0);
 
        if(result == SOCKET_ERROR) {
            // произошла ошибка при отправле данных
            cerr << "send failed: " << WSAGetLastError() << "\n";
        }
        // Закрываем соединение к клиентом
        closesocket(client_socket);
    }
 
    // Убираем за собой
    closesocket(listen_socket);
    freeaddrinfo(addr);
    WSACleanup();
    return 0;
}
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
 
Текущее время: 12:56. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru