Codeblocks не видит заголовочный файл
Здравствуйте!
Столкнулся с небольшой технической проблемой при попытке собрать проект в Code Blocks.
Проект состоит из двух каталогов: в верхнем лежит main.cpp + еще несколько .cpp и .h файлов. В него вложен второй каталог Libr, в котором находится библиотека в виде набора .h файлов. Все инклуды прописаны корректно, все файлы добавленны в проект. Никаких синтаксических и прочих ошибок нет.
Проблема вот в чем: в файлах библиотеки Libr большинство классов и функций помещено в нэймспэйс DspLink. И Code Blocks не хочет собирать проект, жалуясь на каждую функцию из этого неймспейса примерно так:
Ошибки эти возникают тех .cpp файлах, которые находятся в каталоге верхнего уровня. Прочем во вкладке Symbols этот неймспейс со всем содержимым отображается, то есть Code Blocks его видит.
Подскажите пожалуйста, что нужно сделать, чтобы проект скомпилировался?
Заранее спасибо!
P.S.
Когда то у меня была аналогичная проблема при сборке проекта в котором использовалась библиотека boost::thread. Все инклуды были прописаны верно, но все равно выскакивали ошибки типа:
Тогда выходом было прописать файл /usr/lib/libboost_thread.so в build options во вкладке Linker settings. Возможно, что в данном случае нужно сделать что-то подобное, правда библиотека представлена набором хедеров а не .so файлом.
Эта проблема возникает не во время компиляции, а во время линковки и означает что невозможно найти содержимое функции (т.е. её код). Обычно это означает, что как раз таки забыли «прописать <. >.so в build options во вкладке Linker settings». Библиотека точно представлена только *.h файлами? Если да, но где-то в них должна быть inline функция DspLink::Boards::Boards (точнее конструктор в данном случае). Но я сильно подозреваю, что библиотека, которой вы пользуетесь, всё-таки не представлена одними только *.h файлами, а у не есть *.cpp которые собираются в *.so файл и который должен быть подключён к проекту.
Библиотека действительно состояла не только из .h файлов! cpp просто лежали совсем в другой папке и я их не заметил сразу. Пришлось переписать инклуды и по этой части все теперь линкуется вроде нормально, хотя проект все равно не собирается, но об этом другую тему создам. Спасибо!
Пользуюсь Code::Blocks 20.03. Добавляю в него уже скомпилированную библиотеку GLFW (ОС Windows 10). С добавлением самих файлов к проекту проблем не возникло. Проблема возникла с добавлением заголовочных файлов. Можно их, конечно, закинуть в директорию компилятора и тогда всё заработает, но меня это не устраивает. Появляется вопрос, как правильно добавить заголовочный файл библиотеки? Заранее спасибо за помощь.
P.S.: пробовал добавлять через Project -> Build Options -> Search Derictories -> Compiler -> Add и ПКМ по проекту -> Add files - ничего не сработало.
Подключение библиотеки FLTK к Code::Blocks
Сориентируйте пожалуйста. Не могу подключить данную библиотеку. Требует папку include, которой нет.
Code Blocks не видит компилятор
Ребята, недавно пользуюсь linux. Установил себе Code Block среду разработки. При запуске пишет.
Как подключить к Code::Blocks сторонние библиотеки (например, SFML) и различные компиляторы?
Я пользуюсь Code Blocks, и мне дали задание вычислить точки и построить график. Нашел я такую вещь.
Решение
BlackStoneBlack,
Правильно так:
Project -> Build Options -> Search Derictories -> Compiler
Добавляете каталоги, где лежат требуемые заголовочные файлы. При этом обращаете внимание что это делается и для Debug и для Release (чтобы не было такого, что добавили в Debug, а проверяете в Release)
Подключение библиотеки winpcap в Code Blocks
Скачал WinPcap 4.1.2 Developer's Pack. Установил Version 4.1.3 Installer for Windows Driver +DLLs.
Code::blocks linux динамические библиотеки
Можно ли в Code::blocks'e создать динамическую библиотеку(для линукса) и использовать ёё в другом.
Code::blocks linux динамические библиотеки
Как в Code::blocks'e создать динамическую библиотеку(для линукса) и использовать ёё в другом.
Code::Blocks добавление библиотеки в ликер
У меня такая проблема компилятор выдает ошибку undefined reference to `TextOutA@20' на одном форуме.
Подключение библиотеки audiere C++ Code Blocks
Скачала архив (приложила его). Распаковала. Что делать дальше? Куда и что надо распихать? Заранее.
очевидно, что компилятор не знает пути к .h файлу. Где его прописать или что сделать чтобы программа скомпилировалась?
Имеется вот что (все файлы в одном каталоге):
Code Blocks и файл ресурсов
Как приковать файл rc к программе в Code Blocks? Пытался по-разному: компилировал и встроенным.
Code::Blocks
В Code::Blocks когда ты откомпилил программу в Debug, после внес изменения и снова "откомпилил", то.
code::blocks 10.05
Я установил себе C++ code::blocks. И когда я компилирую любую программу и потом запускаю .exe.
Попробуйте поставить просто:
Хедеры разные.
Для удобства работы, создавайте проект, а дальше Project >> Add files, либо в CB просто File >> New >> Empty File и подтвердите "Добавить в проект".
Советую
т.к. запись устарела и была валидна лишь на момент написания книги. Вдобавок, в языке С++ если идентификатор возвращаемого значения функции не указан, то он по-умолчанию void, что противоречит стандарту (main must be int).
Кавычки действительно забыл, вместо них <>. Поправил.
int поставил, но пока все равно не собирается.
Попробую проект организовать с использованием кнопки add to project
Добавлено через 32 минуты
Быть может в code::blocks надо указать путь, где .h файл находится в настройках компилятора??
Код проверил несколько раз, все в норме. Нашел еще ошибку. все исправил. но проект не собирается работать.
2. В main.cpp вставляете ваш main, с заменой кавычек у хедера сверху на "time1.h"
3. Добавляете новый пустой файл
4. Подтверждаете, что добавляете к сущ. проекту
5. Сохраняете как time1.h, вставляете туда ваш код из первых cpp тегов. Аналогично добавляете в проект файл time1.cpp
6. Удаляете объявление класса из .cpp файла, изменяете кавычки. Компилируете
Всё работает!
Также прикрепляю к посту готовый проект.
Все заработало! Спасибо!
Я неправильно создавал проект. У меня даже кнопка add to project не работала.
Ошибка была вот в чем: я создавал пустой текстовый файл с именем time1.h, time1.cpp, fig6_5.cpp и открывал их через: File -> New -> File -> CPP project и CPP header
Думал что достаточно нахождения оных в одной папке для успешной сборки.
Code::Blocks
Здравствуйте. Я в английском не силён, и разобраться самостоятельно с этой IDE не могу. У меня есть.
MS VS in CODE BLOCKS
Делал проекты в VISUAL C++ EXPRESS. Сеичас пересел на LINUX, пользуюсь CODE BLOCKS . Есть.
Мышка в code blocks
Как подключить мышку в code blocks. Срочно нужно. Заранее благодарен
Code Blocks не компилирует
Ребят, помогите пожалуйста, хочу продолжить освоение языка, а тут такая печалька=( Не.
Не запускается в code blocks 8.0
Всем привет, нашел прогу которая видимо рабочая, но не могу проверить так как в code blocks она не.
I am trying to use libcurl for a simple application using CodeBlocks IDE. In Codeblocks IDE, after clicking on Build Options ==> Linker Settings ==> Link Libraries ==> "Add" , the file browser only allows me to choose between *.a, *.so, *.lib, and *.dyl files. Why is it not allowing me to choose *.dll files? I downloaded the binary packages for Windows for libcurl and they all provide .dll files. This is what it looks like:
====UPDATE====
However, I am still having issues being able to compile my source code.
Below is my source code:
- Below is a screen shot of my CodeBlocks IDE working directory:
- Below are screen shots of my build options for Linker/Compiler, and Linker Libraries:
I am not sure what is wrong with the setup. It is having trouble building. It is returning the following error messages:
Below is the latest Build Log:
1 Answer 1
A DLL (dynamic link library) is searched for and loaded by your program at runtime. To make this happen automatically, you do not link the .dll itself (you can't). You link the matching import library, with extension .lib .
The import library for libcurl.dll is libcurl.lib . If you have downloaded and extracted cURL , say, into C:\develop\curl-7.34.0-win32 , then you will find the import library at C:\develop\curl-7.34.0-win32\lib\libcurl.lib . You should add this file to the libraries for your Code::Blocks project.
The project will then link (unless it has other problems), but in order for it to run successfully it will have to find libcurl.dll in one of the locations that are searched for DLLs at runtime. The simplest way to ensure this is to place a copy of libcurl.dll in the directory from which your program runs. Otherwise you can decide on a location for it by studying Dynamic-Link Library Search Order
Update for OP's further issues
Your program is the supplied example simple.c with the addition of a C++ header, .
- Delete your libcurl project and start again with a clean C project (not C++ ).
- Add only 1 source file to the C project, the example simple.c or a copy of it. Don't make it a .cpp file or otherwise change it. Don't add any other files to the project.
- In Build options ->Linker settings ->Link libraries add the relative path to libcurl.lib as you did before.
- In Build options ->Search Directories ->Compiler (not Linker) add the relative path to the cURL include directory and nothing else (not the include\curl directory).
- Do not put anything in Search directories ->Linker.
- Build the project. It compiles and links for me.
The problem now is that you are attempting to link the 64-bit curl-7.34.0-win64\lib\libcurl.lib with the 32-bit object code generated by your 32-bit toolchain, mingw32 . You can't do that.
Replace your install of curl-7.34.0-win64 with curl-7.34.0-win32 from the same site. In your project, replace your\path\to\curl-7.34.0-win64\lib\libcurl.lib with your\path\to\curl-7.34.0-win32\lib\libcurl.lib and try again. The example will compile and link.
It will also run correctly, provided that it finds 32-bit libcurl.dll at runtime, and likewise the 32-bit DLLs that are dynamically loaded by libcurl.dll in turn. For the purpose of the example just copy all the DLLs from your\path\to\curl-7.34.0-win32\dlls into the same directory as the .exe . For regular development of cURL apps you would want the cURL libraries installed on the the system.
Since you chose to download 64-bit cURL in the first place, you may wish to build 64-bit executables (although 32-bit executables will run on 64-bit hosts). You can't do that that with your 32-bit toolchain, mingw32 . You can install a 64-bit toolchain, e.g. TDM-GCC MinGW Compiler, and configure it as an additional toolchain in C::B. Alternatively you could replace your C::B installation with a C::B 13.12 one that has TDM-GCC pre-configured, from Sourceforge
Компилю бинарник под arm на кросскомпиляторе, Code Blocks не видит библиотеки, хотя под х86 компилится нормально. Все библиотеки связаны с графикой. Например просит -lgtk-x11-2.0, libgtk установлен библиотека находится в /usr/lib/i386. / Что и где прописать?
Компилю бинарник под arm
библиотека находится в /usr/lib/i386
в путях библиотек под арм, в папке кросс-компилятора скорее всего
в путях библиотек под арм, в папке кросс-компилятора скорее всего
Ты ошиблось сайтом: папки - в виндах
молодец, отбрил. с такими бравыми парнями лет через 20 линукс выйдет из стадии пре-альфа. на пару месяцев
лет через 20 линукс выйдет из стадии пре-альфа
молодец, отбрил. с такими бравыми парнями лет через 20 линукс выйдет из стадии пре-альфа. на пару месяцев
Как связаны стадии (что за стадии, кстати?) и ваши папки-мамки?
Ок. Где взять либы под arm?
С CodeBlocks плотно не работал, но на основе опыта работы с другими юниксвей IDE, могу утверждать что:
1. Утверждение о том что именно CodeBlocks не видит библиотеки - неверное. Так как традиционно такие ИДЕ передают всю заботу о библиотеках и путях компилятору.
2. Соответсвенно библиотеку не видит компилятор.
Так что ищи проблему от компилятора. Вручную проверь какие библиотеки требуются в строке линковки. Вручную проверь, есть ли ИМЕННО ЭТИ БИБЛИОТЕКИ, которые требует кросс-компилятор.
Компилю бинарник под arm на кросскомпиляторе
.
Например просит -lgtk-x11-2.0, libgtk установлен библиотека находится в /usr/lib/i386. /
При кросс-компиляции необходимо использовать соответствующие библиотеки, собранные под целевую платформу. Укажите директорию где располагаются необходимые библиотеки использую -L, например -L/home/user/arm/libs, если используется Makefile, при генерации Makefile средствами IDE необходимо прописать путь до библиотек в IDE.
Измельчал совсем anonymous, оригинальнее «сам дурак» в голову не идет, скоро «а ты купи слона» в ход пойдет.
Читайте также: