p.s. название библиотеки поменялось
g++ main.cpp -o main.exe -lglfw3 //Компиляция происходит без проблем, а линковка дает ошибки
#include "glfw3.h"
int main(void)
{
GLFWwindow* window;
/* Initialize the library */
if (!glfwInit())
return -1;
/* Create a windowed mode window and its OpenGL context */
window = glfwCreateWindow(640, 480, "Hello World", NULL, NULL);
if (!window)
{
glfwTerminate();
return -1;
}
/* Make the window's context current */
glfwMakeContextCurrent(window);
/* Loop until the user closes the window */
while (!glfwWindowShouldClose(window))
{
/* Render here */
glClear(GL_COLOR_BUFFER_BIT);
/* Swap front and back buffers */
glfwSwapBuffers(window);
/* Poll for and process events */
glfwPollEvents();
}
glfwTerminate();
return 0;
}
undefined reference to `_imp__glClear@4'
то opengl32.a надо закинуть в project\libs$ make
$ make clean
mkdir cmake-build
# Создаём папку для сгенерированных файлов, чтобы не смешивались с исходниками
# Это называеться out-of-source build
cd cmake-build
# Генерируем проект или Makefile
cmake ..
# Запускаем билд, можно просто запустить make
cmake --build .
qmake
make
switch(1){ case 1: double d = 1; //ошибка }
Почему нельзя инициализировать в case?
It is possible to transfer into a block, but not in a way that bypasses declarations
with initialization. A program that jumps from a point where a local variable with
automatic storage duration is not in scope to a point where it is in scope is ill-formed
unless the variable has POD type (3.9) and is declared without an initializer.
просто хочется максимально чистыйто это Gentoo. А если для кодинга, то любой. Лично у меня первым дистрибутивом был Linux Mint. Не самый лучший вариант, но для старта самое оно: много манов в сети, куча всего нужно уже предустановленно и настроено, есть ПО для бэкапа. Освоишься, научишься работать с Linux, то можно будет пробовать что-то другое, получше.
for(char* pnew_char = new_char; *pnew_char++ = *--pchar;);
for(; *pchar; ++length, ++pchar);
for(char* pnew_char = new_char; *pnew_char++ = *--pchar;);
pstr2
не инициализирован ничем, а потому указывает на произвольную область памяти. В подавляющем большинстве случаев попытка записать что-либо куда попало приведёт к segmentation fault. Исправить можно инициализировав его указателем на область в куче:char* pstr2 = malloc(13);
cpyp(pstr2, pstr1);
free(pstr2);