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

Правильная линковка библиотек - C++

Войти
Регистрация
Восстановить пароль
Другие темы раздела
C++ Объединение (union), объяснить выведенное значение http://www.cyberforum.ru/cpp-beginners/thread877524.html
Здравствуйте. При вызове обработчика выдаются значения переменных a,b,c, но когда я удаляю строку data.c = -3; вместо с выдается число 1084709929. Мне нужно объяснить откуда оно берется или как вычисляется, знаю только что оно не случайно и каким-то образом зависит от типа данных переменной с, типа данных переменной b и самой b. Заранее спасибо. typedef union { short a; float b; long c;}...
C++ Аппроксимация кривых и поверхностей сплайнами Помогите пожалуйста...не было даже лекции по теме сплайнов....я в замешательстве...я не смогу реализовать такую сложную программу... 1) Составить программу для реализации нескольких форм построения сплайновых кривых линий (однопараметрические множества) по заданному точечному каркасу. Провести сравнение условий гладкости кривых, построенных разными способами по одному и... http://www.cyberforum.ru/cpp-beginners/thread877521.html
C++ Программа не обрабатывает текст из файла с кодировкой, отличной от ANSI
Здравствуйте. Имеется программка, которая читает текст из файла, обрабатывает его и записывает результат в другой текстовый файл. Проблема: Не читает текст из файла, если кодировка отлична от кириллицы. Исходники в приложенном файле. Пишу в Visual Studio 2010.
Реализовать функцию, которая осуществляет циклический побитовый сдвиг вправо на n позиций C++
Реализовать функцию, которая осуществляет циклический побитовый сдвиг вправо на n позиций. При циклическом сдвиге вправо на 1 все биты сдвигаются относительно разрядной сетки на одну позицию, а младший бит занимает место старшего. Циклический сдвиг вправо на n позиций – это n сдвигов вправо на 1 позицию. Функция должна принимать в качестве первого параметра переменную типа unsigned int, в...
C++ Разложение Шеннона по таблице истинности http://www.cyberforum.ru/cpp-beginners/thread877494.html
Большая просьба, как на С++ можно реализовать Разложение Шеннона для ДНФ по всем переменным? Помогите, плиз.
C++ strcmp slovo={'d','d','d'}; char *slovo2=new char; for(int i=0;i<k;i++) { cin>>slovo2; } int s=strcmp(slovo2,slovo); и ввожу d,d,d; почему в переменной s не 0??? в документации написано что она 0 должна возвр. при равных массивах. помогите! подробнее

Показать сообщение отдельно
No10
30 / 28 / 2
Регистрация: 03.06.2010
Сообщений: 465
25.05.2013, 18:16  [ТС]     Правильная линковка библиотек
gray_fox, ага, понятно. Щас попробую.

Добавлено через 4 часа 41 минуту
Блин если создать со всех файлов src .cpp/.c создать обьектные файлы .o все равно куча ошибок.
Вот мой makefile:
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
CC = g++
EXE = nvTest
 
DIR1 = -I"C:\Program Files (x86)\NVIDIA Corporation\NVIDIA OpenGL SDK 10\common\include"
DIR2 = -I"C:\Program Files (x86)\NVIDIA Corporation\NVIDIA OpenGL SDK 10\common\GLEW\include"
DIR3 = -I"C:\Program Files (x86)\NVIDIA Corporation\NVIDIA OpenGL SDK 10\common\nvModel\include"
DIR4 = -I"C:\Program Files (x86)\NVIDIA Corporation\NVIDIA OpenGL SDK 10\common\nvWidgets\include"
DIR5 = -I"C:\Program Files (x86)\NVIDIA Corporation\NVIDIA OpenGL SDK 10\common\nvImage\include"
DIR6 = -I"C:\Program Files (x86)\NVIDIA Corporation\NVIDIA OpenGL SDK 10\common\nvGUI\include"
 
FILE1 = "C:\Program Files (x86)\NVIDIA Corporation\NVIDIA OpenGL SDK 10\common\GLEW\src\glew.c"
FILE2 = "C:\Program Files (x86)\NVIDIA Corporation\NVIDIA OpenGL SDK 10\common\nvImage\src\nvImage.cpp"
FILE3 = "C:\Program Files (x86)\NVIDIA Corporation\NVIDIA OpenGL SDK 10\common\nvImage\src\nvImageDDS.cpp"
FILE4 = "C:\Program Files (x86)\NVIDIA Corporation\NVIDIA OpenGL SDK 10\common\nvImage\src\nvImageHdr.cpp"
FILE5 = "C:\Program Files (x86)\NVIDIA Corporation\NVIDIA OpenGL SDK 10\common\nvImage\src\nvImagePng.cpp"
FILE6 = "C:\Program Files (x86)\NVIDIA Corporation\NVIDIA OpenGL SDK 10\common\nvImage\src\rgbe.cpp"
FILE8 = "C:\Program Files (x86)\NVIDIA Corporation\NVIDIA OpenGL SDK 10\common\nvModel\src\nvModel.cpp"
FILE9 = "C:\Program Files (x86)\NVIDIA Corporation\NVIDIA OpenGL SDK 10\common\nvModel\src\nvModelObj.cpp"
FILE10 = "C:\Program Files (x86)\NVIDIA Corporation\NVIDIA OpenGL SDK 10\common\nvModel\src\nvModelQuery.cpp"
FILE11 = "C:\Program Files (x86)\NVIDIA Corporation\NVIDIA OpenGL SDK 10\common\nvWidgets\src\nvGlutWidgets.cpp"
FILE12 = "C:\Program Files (x86)\NVIDIA Corporation\NVIDIA OpenGL SDK 10\common\nvWidgets\src\nvGLWidgets.cpp"
FILE13 = "C:\Program Files (x86)\NVIDIA Corporation\NVIDIA OpenGL SDK 10\common\nvWidgets\src\nvWidgets.cpp"
FILE_MAIN += main.cpp
FILE_MAIN += $(FILE1)
FILE_MAIN += $(FILE2)
FILE_MAIN += $(FILE3)
FILE_MAIN += $(FILE4)
FILE_MAIN += $(FILE5)
FILE_MAIN += $(FILE6)
FILE_MAIN += $(FILE8)
FILE_MAIN += $(FILE9)
FILE_MAIN += $(FILE10)
FILE_MAIN += $(FILE11)
FILE_MAIN += $(FILE12)
FILE_MAIN += $(FILE13)
 
OFILE1 = "C:\Program Files (x86)\NVIDIA Corporation\NVIDIA OpenGL SDK 10\common\GLEW\src\glew.o"
OFILE2 = "C:\Program Files (x86)\NVIDIA Corporation\NVIDIA OpenGL SDK 10\common\nvImage\src\nvImage.o"
OFILE3 = "C:\Program Files (x86)\NVIDIA Corporation\NVIDIA OpenGL SDK 10\common\nvImage\src\nvImageDDS.o"
OFILE4 = "C:\Program Files (x86)\NVIDIA Corporation\NVIDIA OpenGL SDK 10\common\nvImage\src\nvImageHdr.o"
OFILE5 = "C:\Program Files (x86)\NVIDIA Corporation\NVIDIA OpenGL SDK 10\common\nvImage\src\nvImagePng.o"
OFILE6 = "C:\Program Files (x86)\NVIDIA Corporation\NVIDIA OpenGL SDK 10\common\nvImage\src\rgbe.o"
OFILE8 = "C:\Program Files (x86)\NVIDIA Corporation\NVIDIA OpenGL SDK 10\common\nvModel\src\nvModel.o"
OFILE9 = "C:\Program Files (x86)\NVIDIA Corporation\NVIDIA OpenGL SDK 10\common\nvModel\src\nvModelObj.o"
OFILE10 = "C:\Program Files (x86)\NVIDIA Corporation\NVIDIA OpenGL SDK 10\common\nvModel\src\nvModelQuery.o"
OFILE11 = "C:\Program Files (x86)\NVIDIA Corporation\NVIDIA OpenGL SDK 10\common\nvWidgets\src\nvGlutWidgets.o"
OFILE12 = "C:\Program Files (x86)\NVIDIA Corporation\NVIDIA OpenGL SDK 10\common\nvWidgets\src\nvGLWidgets.o"
OFILE13 = "C:\Program Files (x86)\NVIDIA Corporation\NVIDIA OpenGL SDK 10\common\nvWidgets\src\nvWidgets.o"
OFILE_MAIN += main.o
OFILE_MAIN += $(OFILE1)
OFILE_MAIN += $(OFILE2)
OFILE_MAIN += $(OFILE3)
OFILE_MAIN += $(OFILE4)
OFILE_MAIN += $(OFILE5)
OFILE_MAIN += $(OFILE6)
OFILE_MAIN += $(OFILE8)
OFILE_MAIN += $(OFILE9)
OFILE_MAIN += $(OFILE10)
OFILE_MAIN += $(OFILE11)
OFILE_MAIN += $(OFILE12)
OFILE_MAIN += $(OFILE13)
 
INCLUDE += $(DIR1)
INCLUDE += $(DIR2)
INCLUDE += $(DIR3)
INCLUDE += $(DIR4)
INCLUDE += $(DIR5)
INCLUDE += $(DIR6)
all: objectFile
    $(CC) $(OFILE_MAIN) -o $(EXE) $(INCLUDE)
objectFile:
    $(CC) -c $(FILE_MAIN)
Хотелось бы весь этот ужас упростить, но не знаю как.
Вот часть ошибок
C++
1
2
3
C:\QTProjects\MESFC-build-desktop-Qt_4_7_4_for_Desktop_-_MinGW_4_4__Qt_SDK_________\..\..\Program Files (x86)\NVIDIA Corporation\NVIDIA OpenGL SDK 10\common\nvModel\include\nvModel.h:29: In file included from ..\..\Program Files (x86)\NVIDIA Corporation\NVIDIA OpenGL SDK 10\common\nvModel\include/nvModel.h:29,
C:\QTProjects\MESFC-build-desktop-Qt_4_7_4_for_Desktop_-_MinGW_4_4__Qt_SDK_________\..\..\Program Files (x86)\NVIDIA Corporation\NVIDIA OpenGL SDK 10\common\GLEW\include\GL\glew.h:5913: ошибка: 'GLint64EXT' has not been declared
и др.
Добавлено через 5 минут
у меня есть файлы .lib, что можно из них сделать и как?

Добавлено через 11 минут
OhMyGodSoLong, понятно. Что они дают?
Вот я прицепляю их:
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
CC = g++
EXE = nvTest
 
DIR1 = -I"C:\Program Files (x86)\NVIDIA Corporation\NVIDIA OpenGL SDK 10\common\include"
DIR2 = -I"C:\Program Files (x86)\NVIDIA Corporation\NVIDIA OpenGL SDK 10\common\GLEW\include"
DIR3 = -I"C:\Program Files (x86)\NVIDIA Corporation\NVIDIA OpenGL SDK 10\common\nvModel\include"
DIR4 = -I"C:\Program Files (x86)\NVIDIA Corporation\NVIDIA OpenGL SDK 10\common\nvWidgets\include"
DIR5 = -I"C:\Program Files (x86)\NVIDIA Corporation\NVIDIA OpenGL SDK 10\common\nvImage\include"
DIR6 = -I"C:\Program Files (x86)\NVIDIA Corporation\NVIDIA OpenGL SDK 10\common\nvGUI\include"
 
LIB = -static "C:\Program Files (x86)\NVIDIA Corporation\NVIDIA OpenGL SDK 10\common\nvModel\lib\nvModel.lib"
 
INCLUDE += $(DIR1)
INCLUDE += $(DIR2)
INCLUDE += $(DIR3)
INCLUDE += $(DIR4)
INCLUDE += $(DIR5)
INCLUDE += $(DIR6)
all:
    $(CC) main.cpp -o $(EXE) $(INCLUDE) $(LIB)
Но опять ошибки! Не знаю почему. Вот log ошибок, которые я вывел в файл
Кликните здесь для просмотра всего текста
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
In file included from C:\Program Files (x86)\NVIDIA Corporation\NVIDIA OpenGL SDK 10\common\include/nvMath.h:54:0,
                 from main.cpp:2:
C:\Program Files (x86)\NVIDIA Corporation\NVIDIA OpenGL SDK 10\common\include/nvVector.h: In function 'nv::vec2<T>& nv::operator/=(nv::vec2<T>&, const nv::vec2<T>&)':
C:\Program Files (x86)\NVIDIA Corporation\NVIDIA OpenGL SDK 10\common\include/nvVector.h:156:17: error: invalid use of 'this' in non-member function
C:\Program Files (x86)\NVIDIA Corporation\NVIDIA OpenGL SDK 10\common\include/nvVector.h: In function 'typename T::value_type nv::dot(const T&, const T&)':
C:\Program Files (x86)\NVIDIA Corporation\NVIDIA OpenGL SDK 10\common\include/nvVector.h:681:5: error: need 'typename' before 'T:: value_type' because 'T' is a dependent scope
C:\Program Files (x86)\NVIDIA Corporation\NVIDIA OpenGL SDK 10\common\include/nvVector.h:681:19: error: expected ';' before 'r'
C:\Program Files (x86)\NVIDIA Corporation\NVIDIA OpenGL SDK 10\common\include/nvVector.h:682:41: error: 'r' was not declared in this scope
C:\Program Files (x86)\NVIDIA Corporation\NVIDIA OpenGL SDK 10\common\include/nvVector.h:683:12: error: 'r' was not declared in this scope
C:\Program Files (x86)\NVIDIA Corporation\NVIDIA OpenGL SDK 10\common\include/nvVector.h: In function 'typename T::value_type nv::length(const T&)':
C:\Program Files (x86)\NVIDIA Corporation\NVIDIA OpenGL SDK 10\common\include/nvVector.h:689:5: error: need 'typename' before 'T:: value_type' because 'T' is a dependent scope
C:\Program Files (x86)\NVIDIA Corporation\NVIDIA OpenGL SDK 10\common\include/nvVector.h:689:19: error: expected ';' before 'r'
C:\Program Files (x86)\NVIDIA Corporation\NVIDIA OpenGL SDK 10\common\include/nvVector.h:690:41: error: 'r' was not declared in this scope
C:\Program Files (x86)\NVIDIA Corporation\NVIDIA OpenGL SDK 10\common\include/nvVector.h:691:31: error: 'r' was not declared in this scope
C:\Program Files (x86)\NVIDIA Corporation\NVIDIA OpenGL SDK 10\common\include/nvVector.h: In function 'typename T::value_type nv::square_norm(const T&)':
C:\Program Files (x86)\NVIDIA Corporation\NVIDIA OpenGL SDK 10\common\include/nvVector.h:697:5: error: need 'typename' before 'T:: value_type' because 'T' is a dependent scope
C:\Program Files (x86)\NVIDIA Corporation\NVIDIA OpenGL SDK 10\common\include/nvVector.h:697:19: error: expected ';' before 'r'
C:\Program Files (x86)\NVIDIA Corporation\NVIDIA OpenGL SDK 10\common\include/nvVector.h:698:41: error: 'r' was not declared in this scope
C:\Program Files (x86)\NVIDIA Corporation\NVIDIA OpenGL SDK 10\common\include/nvVector.h:699:12: error: 'r' was not declared in this scope
C:\Program Files (x86)\NVIDIA Corporation\NVIDIA OpenGL SDK 10\common\include/nvVector.h: In function 'T nv::normalize(const T&)':
C:\Program Files (x86)\NVIDIA Corporation\NVIDIA OpenGL SDK 10\common\include/nvVector.h:705:5: error: need 'typename' before 'T:: value_type' because 'T' is a dependent scope
C:\Program Files (x86)\NVIDIA Corporation\NVIDIA OpenGL SDK 10\common\include/nvVector.h:705:19: error: expected ';' before 'sum'
C:\Program Files (x86)\NVIDIA Corporation\NVIDIA OpenGL SDK 10\common\include/nvVector.h:708:9: error: 'sum' was not declared in this scope
C:\Program Files (x86)\NVIDIA Corporation\NVIDIA OpenGL SDK 10\common\include/nvVector.h:709:5: error: 'sum' was not declared in this scope
In file included from C:\Program Files (x86)\NVIDIA Corporation\NVIDIA OpenGL SDK 10\common\include/nvMath.h:55:0,
                 from main.cpp:2:
C:\Program Files (x86)\NVIDIA Corporation\NVIDIA OpenGL SDK 10\common\include/nvMatrix.h: In member function 'nv::vec4<T> nv::matrix4<T>::get_column(int) const':
C:\Program Files (x86)\NVIDIA Corporation\NVIDIA OpenGL SDK 10\common\include/nvMatrix.h:168:54: error: 'r' was not declared in this scope
In file included from C:\Program Files (x86)\NVIDIA Corporation\NVIDIA OpenGL SDK 10\common\include/nvMath.h:56:0,
                 from main.cpp:2:
C:\Program Files (x86)\NVIDIA Corporation\NVIDIA OpenGL SDK 10\common\include/nvQuaternion.h: In member function 'const T* nv::quaternion<T>::get_value() const':
C:\Program Files (x86)\NVIDIA Corporation\NVIDIA OpenGL SDK 10\common\include/nvQuaternion.h:111:18: error: 'q' was not declared in this scope
C:\Program Files (x86)\NVIDIA Corporation\NVIDIA OpenGL SDK 10\common\include/nvQuaternion.h: In member function 'void nv::quaternion<T>::get_value(T&, T&, T&, T&) const':
C:\Program Files (x86)\NVIDIA Corporation\NVIDIA OpenGL SDK 10\common\include/nvQuaternion.h:116:14: error: 'q' was not declared in this scope
C:\Program Files (x86)\NVIDIA Corporation\NVIDIA OpenGL SDK 10\common\include/nvQuaternion.h: In member function 'nv::quaternion<T>& nv::quaternion<T>::set_value(const nv::vec3<T>&, const nv::vec3<T>&)':
C:\Program Files (x86)\NVIDIA Corporation\NVIDIA OpenGL SDK 10\common\include/nvQuaternion.h:278:18: error: missing template arguments before 'v'
C:\Program Files (x86)\NVIDIA Corporation\NVIDIA OpenGL SDK 10\common\include/nvQuaternion.h:278:18: error: expected ';' before 'v'
C:\Program Files (x86)\NVIDIA Corporation\NVIDIA OpenGL SDK 10\common\include/nvQuaternion.h:281:17: error: 'v' was not declared in this scope
C:\Program Files (x86)\NVIDIA Corporation\NVIDIA OpenGL SDK 10\common\include/nvQuaternion.h:283:17: error: 'v' was not declared in this scope
C:\Program Files (x86)\NVIDIA Corporation\NVIDIA OpenGL SDK 10\common\include/nvQuaternion.h:285:13: error: 'v' was not declared in this scope
C:\Program Files (x86)\NVIDIA Corporation\NVIDIA OpenGL SDK 10\common\include/nvQuaternion.h: In member function 'void nv::quaternion<T>::mult_vec(nv::vec3<T>&) const':
C:\Program Files (x86)\NVIDIA Corporation\NVIDIA OpenGL SDK 10\common\include/nvQuaternion.h:364:22: error: missing template arguments before '(' token
C:\Program Files (x86)\NVIDIA Corporation\NVIDIA OpenGL SDK 10\common\include/nvQuaternion.h: In member function 'void nv::quaternion<T>::scale_angle(T)':
C:\Program Files (x86)\NVIDIA Corporation\NVIDIA OpenGL SDK 10\common\include/nvQuaternion.h:368:14: error: missing template arguments before 'axis'
C:\Program Files (x86)\NVIDIA Corporation\NVIDIA OpenGL SDK 10\common\include/nvQuaternion.h:368:14: error: expected ';' before 'axis'
C:\Program Files (x86)\NVIDIA Corporation\NVIDIA OpenGL SDK 10\common\include/nvQuaternion.h:371:19: error: 'axis' was not declared in this scope
mingw32-make: *** [all] Error 1


Добавлено через 1 минуту
Не видит некоторые переменные. Но как мне .lib прицепить? И что потом нужно будет приложению для запуска?

Добавлено через 12 минут
заменил эту строку makefile:
C++
1
$(CC) main.cpp -o $(EXE) $(INCLUDE) $(LIB)
на эту:
C++
1
$(CC) main.cpp $(LIB) -o $(EXE) $(INCLUDE)
И в LIB убрал ключ -static. Ничего не изменилось. Те же ошибки.
Что же я не так линкую?
 
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru