|
|
|
Непонятная Ошибка при компиляции (Linux)
|
|||
|---|---|---|---|
|
#18+
День добрый! Проблема такова OC Fedora Core3 (Linux) kdevelop 2.7 В makefile прописал один .h файл в основную программу его добавляю Код: plaintext 1. 2. 3. все компилируется без ошибок стоит только написать функцию из ms-ole.h ms_ole_open_vfs(MsOLE **fs) Код: plaintext компилятор пишет ошибку undefined function строка 33 хотя стоит задать неправильное количество параметров в функции, компилятор выдает соответствующую ошибку, т.е. все определения в ms-ole.h компилятор видит а вот на функцию почему то ругается (и так на любую из ms-ole.h) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 11.12.2006, 11:02 |
|
||
|
Непонятная Ошибка при компиляции (Linux)
|
|||
|---|---|---|---|
|
#18+
Ну а в какой библиотеке находятся эти самые определения функций? Вы ее подключили? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 11.12.2006, 11:16 |
|
||
|
Непонятная Ошибка при компиляции (Linux)
|
|||
|---|---|---|---|
|
#18+
Компилятор или линковщик? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 11.12.2006, 11:40 |
|
||
|
Непонятная Ошибка при компиляции (Linux)
|
|||
|---|---|---|---|
|
#18+
Нету в русском языке такого слова "линковщик". Это называется ЛИНКЕР . ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 11.12.2006, 12:35 |
|
||
|
Непонятная Ошибка при компиляции (Linux)
|
|||
|---|---|---|---|
|
#18+
MasterZivНету в русском языке такого слова "линковщик". Это называется ЛИНКЕР . Пасибо, просвятил :) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 11.12.2006, 12:40 |
|
||
|
Непонятная Ошибка при компиляции (Linux)
|
|||
|---|---|---|---|
|
#18+
на самом деле это сборщик. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 11.12.2006, 13:22 |
|
||
|
Непонятная Ошибка при компиляции (Linux)
|
|||
|---|---|---|---|
|
#18+
Да хоть Дед Мороз. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 11.12.2006, 13:51 |
|
||
|
Непонятная Ошибка при компиляции (Linux)
|
|||
|---|---|---|---|
|
#18+
Анатолий ШироковНу а в какой библиотеке находятся эти самые определения функций? Вы ее подключили? libole2 я подключал не библиотеку а просто взял из нее файлы ms-ole.h ms-ole.c реализующие класс MsOle(вернее не класс, а структуру вы обратили внимание, что она на С ) и поместил их в каталог со своей программой, а в src.pro написал: Код: plaintext 1. 2. 3. и в makefile дал ссылку на библиотеку glib которую использует ms-ole.h Код: plaintext 1. Может еще что-то надо? 2 Akh пишет gmake компоновка и далее выдает undefined function ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 11.12.2006, 15:48 |
|
||
|
Непонятная Ошибка при компиляции (Linux)
|
|||
|---|---|---|---|
|
#18+
vitaliy14 Анатолий ШироковНу а в какой библиотеке находятся эти самые определения функций? Вы ее подключили? libole2 я подключал не библиотеку а просто взял из нее файлы ms-ole.h ms-ole.c реализующие класс MsOle(вернее не класс, а структуру вы обратили внимание, что она на С ) и поместил их в каталог со своей программой, а в src.pro написал: Код: plaintext 1. 2. 3. и в makefile дал ссылку на библиотеку glib которую использует ms-ole.h Код: plaintext 1. Может еще что-то надо? 2 Akh пишет gmake компоновка и далее выдает undefined function По всей видимости не поключает в проекту скомилированный ms-ole.c. Возможно в мэйкфайле, надо прописать в какие-нибудь objs ее объектник. Можно пойти несколькими путями: 1. Найти в мэйкфайле где компануется проект, посмотреть из каких мэк-переменных он собирается, и соответственно их изменить. 2. Посмотреть какая команда выдается при линковке. Для этого в мэйкфайле убрать, @ если она стоит. Соответвественно убедиться, что объектник не выдается. И идти по пункту первому. 3. Попробовать определить, в какие еще переменные можно добавить объектник или исходник. 4. Если мэйк файл не очень большой, закинуть сюда. Может и так станет ясно. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 11.12.2006, 16:50 |
|
||
|
Непонятная Ошибка при компиляции (Linux)
|
|||
|---|---|---|---|
|
#18+
2 Akh Извиняюсь за столь долгий ответ работу по проекту пришлось отложить на месяц. ms-ole.c как раз компилируется Дело в том, что в ms-ole.c используется glib.h из библиотеки /usr/include/glib-2.0 , а тот в свою очередь использует еще полтора десятка header-файлов из этого каталога и вся проблема в том что у меня не получается прописать ссылку на /usr/include/glib-2.0/ чтобы все нужные header-файлы из glib-2.0 компилировались без ошибок!!!.. Т.е. сейчас при компиляции первая ошибка выдается что glib.h не найден а далее полсотни ошибок связанных типами данных и функциями которые используются в ms-ole.c (из glib.h glibconfig.h ....... итд)!!!! ниже сам исходник makefile Код: plaintext 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. 153. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 07.01.2007, 21:53 |
|
||
|
Непонятная Ошибка при компиляции (Linux)
|
|||
|---|---|---|---|
|
#18+
В INCPATH пробывал прописать директории -I/usr/lib/glib-2.0/include -I/usr/include/glib-2.0/ но ничего не получилось :( а сам src.pro у меня такой Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. Вообщем если нужно еще что-то пояснить вы спрашивайте! заранее спасибо за помощь! ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 07.01.2007, 22:00 |
|
||
|
Непонятная Ошибка при компиляции (Linux)
|
|||
|---|---|---|---|
|
#18+
Не нравится мне подход "выдернул, проинклудил и юзаю отдельно." Лучше подклуючить библиотеку, Отнаследовать что надо и вперед. Или изменить исходный код библиотки и перекомпилировать/переустановить. Сейчас первое, что приходит на ум - взять исходники libole2, перекомпилить, и если удачно, то посмотреть его майк файл на счет инклудов. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 09.01.2007, 10:13 |
|
||
|
Непонятная Ошибка при компиляции (Linux)
|
|||
|---|---|---|---|
|
#18+
vitaliy14стоит только написать функцию из ms-ole.h ms_ole_open_vfs(MsOLE **fs) ms_ole_open_vfs(&ole); Есть подозрение, что ситуёвина похожа на мою Попробуй поиграться с разными вариантами *, **, & ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 09.01.2007, 11:22 |
|
||
|
Непонятная Ошибка при компиляции (Linux)
|
|||
|---|---|---|---|
|
#18+
AkhНе нравится мне подход "выдернул, проинклудил и юзаю отдельно." Лучше подклуючить библиотеку, Отнаследовать что надо и вперед. Или изменить исходный код библиотки и перекомпилировать/переустановить. Сейчас первое, что приходит на ум - взять исходники libole2, перекомпилить, и если удачно, то посмотреть его майк файл на счет инклудов. хорошо только как мне /usr/include/glib-2.0 подключить........ libole2 использует полсотни инклудов из glib-2.0! какую переменную в makefile заюзать с incpath не прокатывает!? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 09.01.2007, 17:22 |
|
||
|
Непонятная Ошибка при компиляции (Linux)
|
|||
|---|---|---|---|
|
#18+
Zmeishe vitaliy14стоит только написать функцию из ms-ole.h ms_ole_open_vfs(MsOLE **fs) ms_ole_open_vfs(&ole); Есть подозрение, что ситуёвина похожа на мою Попробуй поиграться с разными вариантами *, **, & А есть какие-то путевые мануалы про поддержку ole2 в QT? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 09.01.2007, 17:24 |
|
||
|
Непонятная Ошибка при компиляции (Linux)
|
|||
|---|---|---|---|
|
#18+
vitaliy14 AkhНе нравится мне подход "выдернул, проинклудил и юзаю отдельно." Лучше подклуючить библиотеку, Отнаследовать что надо и вперед. Или изменить исходный код библиотки и перекомпилировать/переустановить. Сейчас первое, что приходит на ум - взять исходники libole2, перекомпилить, и если удачно, то посмотреть его майк файл на счет инклудов. хорошо только как мне /usr/include/glib-2.0 подключить........ libole2 использует полсотни инклудов из glib-2.0! какую переменную в makefile заюзать с incpath не прокатывает!? Ты скажи, ты с какой-то целью так прикалываешься над библиотекой или простохочешь наприсать приложение под libole2? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 09.01.2007, 17:35 |
|
||
|
Непонятная Ошибка при компиляции (Linux)
|
|||
|---|---|---|---|
|
#18+
vitaliy14 Zmeishe vitaliy14стоит только написать функцию из ms-ole.h ms_ole_open_vfs(MsOLE **fs) ms_ole_open_vfs(&ole); Есть подозрение, что ситуёвина похожа на мою Попробуй поиграться с разными вариантами *, **, & А есть какие-то путевые мануалы про поддержку ole2 в QT? Я пока не занимался этим сегментом в Qt. Но причём тут Qt?. Я намекал на то, что у меня компилятор ругался в том же духе (типа не знаю функцию и знать не желаю), а проблема была в моей невнимательности и синтаксисе языка С/С++. Разобравшись с указателями, двойными указателями, ссылками и адресами моя проблема решилась. Тебе я советую тоже "поиграться с разными вариантами передачи значения в функцию &ole, *ole, ole" или ещё как-нибудь. Моё частное мнение — это то, что собака порылать где-то рядом. Это при условии, что ругается у тебя именно компилятор, а не линкер. Проверь ещё раз - вдруг перепутал. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 09.01.2007, 18:16 |
|
||
|
Непонятная Ошибка при компиляции (Linux)
|
|||
|---|---|---|---|
|
#18+
Akh vitaliy14 AkhНе нравится мне подход "выдернул, проинклудил и юзаю отдельно." Лучше подклуючить библиотеку, Отнаследовать что надо и вперед. Или изменить исходный код библиотки и перекомпилировать/переустановить. Сейчас первое, что приходит на ум - взять исходники libole2, перекомпилить, и если удачно, то посмотреть его майк файл на счет инклудов. хорошо только как мне /usr/include/glib-2.0 подключить........ libole2 использует полсотни инклудов из glib-2.0! какую переменную в makefile заюзать с incpath не прокатывает!? Ты скажи, ты с какой-то целью так прикалываешься над библиотекой или простохочешь наприсать приложение под libole2? мне нужно написать просмоторщик для чтения составных файлов.(olestorage.. olestream ну вы сами это естественно знаете) Т.е. например в CorelDraw с помощью не мной написанного скрипта файл с картинками и текстом "упаковывается", как составной файл, и в моей программе он должен просматриваться Но!!!! тк программа должна работать под юниксом (а не под windows) отсюда проблема, что нужна либо готовая библиотека которая будет предоставлять нужные API функции, либо мне самому нужно что-то предумывать. Один хороший человек на этом же форуме дал мне ссылку на libole2-2.2.7(в которой все эти api есть) теперь я хочу ее "прикрутить" к своей программе, тк это моя первая серьезная программа под linux и на С++(я писал на Delphi и VB) я может не совсем что-то хорошо представляю ! Был бы вам очень признателен, если бы вы подсказали, что в такой ситуации мне делать, чтоб решить эту задачу. А то у меня голова кругом идет, сплошные ошибки. Заранее спасибо за участие в моей проблеме ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 09.01.2007, 18:46 |
|
||
|
Непонятная Ошибка при компиляции (Linux)
|
|||
|---|---|---|---|
|
#18+
Zmeishe vitaliy14 Zmeishe vitaliy14стоит только написать функцию из ms-ole.h ms_ole_open_vfs(MsOLE **fs) ms_ole_open_vfs(&ole); Есть подозрение, что ситуёвина похожа на мою Попробуй поиграться с разными вариантами *, **, & А есть какие-то путевые мануалы про поддержку ole2 в QT? Я пока не занимался этим сегментом в Qt. Но причём тут Qt?. Я намекал на то, что у меня компилятор ругался в том же духе (типа не знаю функцию и знать не желаю), а проблема была в моей невнимательности и синтаксисе языка С/С++. Разобравшись с указателями, двойными указателями, ссылками и адресами моя проблема решилась. Тебе я советую тоже "поиграться с разными вариантами передачи значения в функцию &ole, *ole, ole" или ещё как-нибудь. Моё частное мнение — это то, что собака порылать где-то рядом. Это при условии, что ругается у тебя именно компилятор, а не линкер. Проверь ещё раз - вдруг перепутал. не как раз линкер ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 09.01.2007, 18:47 |
|
||
|
Непонятная Ошибка при компиляции (Linux)
|
|||
|---|---|---|---|
|
#18+
vitaliy14... Был бы вам очень признателен, если бы вы подсказали, что в такой ситуации мне делать, чтоб решить эту задачу. А то у меня голова кругом идет, сплошные ошибки. Заранее спасибо за участие в моей проблеме Вообщем, понятно. С этого и надо было начинать, а не залазить в сторону и пытаться решить через одно место. Если ты сделаешь rpm -qa | grep libole2, то должен увидеть, что кроме оле у тебя должна стоять libole2-devel. Пакеты со маркером devel означают, что они предназначены для разработки приложений для самой libole2. Если этот пакет у тебя не стоит, то, соотетвенно его надо доставить. Далее делаешь rpm -ql libole2-devel и видишь список файлов, входящих в пакет. Тебе, наверное, наиболее интересны должны быть ашники и документация (например маны). У меня версия древняя 0.2.4, так что документации у меня нет. У тебя наверное есть. Смотришь какие маны есть и, соответсвенно из вызываешь man <имя функции>, читаешь и разбираешься как программить под ole. Можешь почитать ашники и посмотреть какие есть функции. Может и так понятно все станет. Соответсвенно в самой программе надо будет инклудить оле из <libole2/...>, а при линковке подключать что-то типа -lole2. Примерно такой ход действий. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 10.01.2007, 09:54 |
|
||
|
Непонятная Ошибка при компиляции (Linux)
|
|||
|---|---|---|---|
|
#18+
vitaliy14не как раз линкер В первом посте ты писал про компилятор. vitaliy14стоит только написать функцию из ms-ole.h ms_ole_open_vfs(MsOLE **fs) ms_ole_open_vfs(&ole); компилятор пишет ошибку undefined function строка 33 хотя стоит задать неправильное количество параметров в функции, компилятор выдает соответствующую ошибку, т.е. все определения в ms-ole.h компилятор видит а вот на функцию почему то ругается (и так на любую из ms-ole.h) Ну ладно - линкер так линкер. Тебе видней. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 10.01.2007, 10:01 |
|
||
|
Непонятная Ошибка при компиляции (Linux)
|
|||
|---|---|---|---|
|
#18+
Akh vitaliy14... Был бы вам очень признателен, если бы вы подсказали, что в такой ситуации мне делать, чтоб решить эту задачу. А то у меня голова кругом идет, сплошные ошибки. Заранее спасибо за участие в моей проблеме Вообщем, понятно. С этого и надо было начинать, а не залазить в сторону и пытаться решить через одно место. Если ты сделаешь rpm -qa | grep libole2, то должен увидеть, что кроме оле у тебя должна стоять libole2-devel. Пакеты со маркером devel означают, что они предназначены для разработки приложений для самой libole2. Если этот пакет у тебя не стоит, то, соотетвенно его надо доставить. Далее делаешь rpm -ql libole2-devel и видишь список файлов, входящих в пакет. Тебе, наверное, наиболее интересны должны быть ашники и документация (например маны). У меня версия древняя 0.2.4, так что документации у меня нет. У тебя наверное есть. Смотришь какие маны есть и, соответсвенно из вызываешь man <имя функции>, читаешь и разбираешься как программить под ole. Можешь почитать ашники и посмотреть какие есть функции. Может и так понятно все станет. Соответсвенно в самой программе надо будет инклудить оле из <libole2/...>, а при линковке подключать что-то типа -lole2. Примерно такой ход действий. спасибо сейчас буду пробывать Т.е. как понимаю ход действий такой: 1. По умолчанию устанавливаю libole2-0.2.7 (она у меня в виде исходников в tar-архиве) 2. Далее вставляю инклуды <libole2/> (я так понимаю при установке libole2-0.2.7 нужно лучше указывать /usr/include а не /usr/local/include). 3. А -lole2 мне в makefile писать в переменную libs? Просто я пишу в KDeveloper, а не в ручную gmake-ом (Люди когда-то посоветовали) зы с функциями разобрался там все по аналогии с win api (мануалов то нормальных нет) вообще я брал версию помойму годится ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 10.01.2007, 17:33 |
|
||
|
Непонятная Ошибка при компиляции (Linux)
|
|||
|---|---|---|---|
|
#18+
vitaliy14 AkhВообщем, понятно. С этого и надо было начинать, а не залазить в сторону и пытаться решить через одно место. Если ты сделаешь rpm -qa | grep libole2, то должен увидеть, что кроме оле у тебя должна стоять libole2-devel. Пакеты со маркером devel означают, что они предназначены для разработки приложений для самой libole2. Если этот пакет у тебя не стоит, то, соотетвенно его надо доставить. Далее делаешь rpm -ql libole2-devel и видишь список файлов, входящих в пакет. Тебе, наверное, наиболее интересны должны быть ашники и документация (например маны). У меня версия древняя 0.2.4, так что документации у меня нет. У тебя наверное есть. Смотришь какие маны есть и, соответсвенно из вызываешь man <имя функции>, читаешь и разбираешься как программить под ole. Можешь почитать ашники и посмотреть какие есть функции. Может и так понятно все станет. Соответсвенно в самой программе надо будет инклудить оле из <libole2/...>, а при линковке подключать что-то типа -lole2. Примерно такой ход действий. спасибо сейчас буду пробывать Т.е. как понимаю ход действий такой: 1. По умолчанию устанавливаю libole2-0.2.7 (она у меня в виде исходников в tar-архиве) 2. Далее вставляю инклуды <libole2/> (я так понимаю при установке libole2-0.2.7 нужно лучше указывать /usr/include а не /usr/local/include). 3. А -lole2 мне в makefile писать в переменную libs? Просто я пишу в KDeveloper, а не в ручную gmake-ом (Люди когда-то посоветовали) зы с функциями разобрался там все по аналогии с win api (мануалов то нормальных нет) вообще я брал версию помойму годится 1, 2. Тебе надо установить devel. Не надо никаких "вставляю" и "закавыриваю". Берешь libole2-devel и устанавливаешь. Если станет бинарная версия - отлично, если не встанет, прийдется ставить из исходников. Сделаешь тогда ./configure (если нужно), make и make install. Она у тебя станет и сама себя "заковыряет" куда надо. Если ты ее поставишь из бинарника, то потом сможешь просмотреть командой rpm -ql libole2-devel какие файлы она поставила и их изучать. Если из исходников, то подобной информации у тебя не будет (база rpm ничего о ней не будет знать). Так что устанавливай devel . 3. Да в LIBS. За правельность имени библиотеки не ручаюсь. Пальцем в небо. Может и -llibole2, ХЗ. Так что ищи devel и ставь его. Например, можешь посмотреть этот . ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 10.01.2007, 17:48 |
|
||
|
|

start [/forum/topic.php?fid=57&msg=34243669&tid=2029689]: |
0ms |
get settings: |
6ms |
get forum list: |
9ms |
check forum access: |
2ms |
check topic access: |
2ms |
track hit: |
165ms |
get topic data: |
10ms |
get forum data: |
2ms |
get page messages: |
46ms |
get tp. blocked users: |
1ms |
| others: | 198ms |
| total: | 441ms |

| 0 / 0 |
