Blog pacotes
Criando pacotes no Debian

Estarei abordando nos próximos posts, os passos necessários para criar pacotes de instalação no Debian/Ubuntu.

Neste tópico falarei dos pré requisitos, para deixar sua máquina pronta para gerar os pacotes.

Então vamos lá:

No Ubuntu:

Primeiramente baixe o conjunto de pacotes:

apt install devscripts

apt install build-essential crossbuild-essential-amd64 crossbuild-essential-armel crossbuild-essential-i386 sbuild devscripts

apt install vim

No Debian

Primeiramente baixe o conjunto de pacotes

apt install build-dev foo

apt install buildessential

apt install vim

Com estes pacotes instalados, voce tem o básico para gerar seu próprio pacote linux.

Artigos relacionados

    Sem categoria
    CMake no KDevelop

    O CMake é um conjunto de ferramentas multi plataforma, destinada a geração automatizada de programas. Ele é usando em conjunto com o compilador, orquestrando compilações complexas.

    Iremos abordar aqui um exemplo simples de código, integrado com o KDevelop.

    Fontes do projeto

    Iremos explicar como criamos nosso projeto.

    Primeiramente crie um projeto c, conforme apresentado no tutorial do link a seguir:

    http://maurinsoft.com.br/index.php/2021/02/12/kdevelop-novo-projeto/

    Em seguida, entre no projeto teste02, e com o botão direito, abra o menu, conforme apresentado a seguir:

    Agora selecione a opção create file, conforme figura acima.

    Digite os funcoes.c, depois repita a mesma operação com funcoes.h.

    Agora temos no projeto, conforme o exemplo abaixo:

    Neste exemplo temos dois fontes:

    • main.c
    • funcoes.c

    O main.c usa uma função do funcoes.c, iremos ver como incluir isso no CMAKE.

    Copie os códigos para os respectivos fontes, conforme apresentado.

    Fonte do main.c:

    #include <stdio.h>
    #include <stdlib.h>
    #include “funcoes.h”

    int main(int argc, char *argv[])
    {
    teste1();
    return 0;
    }

    Fonte do funcoes.c:

    #include “funcoes.h”
    #include <stdio.h>
    #include <stdlib.h>
    void teste1(void)
    {
    printf(“Teste funcoes”);
    }

    Fonte do funcoes.h:

    #ifndef FUNCOES_H
    #define FUNCOES_H
    void teste1(void);
    # endif /FUNCOES_H/

    Exemplo do CMakeList.txt

    cmake_minimum_required(VERSION 3.0)
    project(teste02 LANGUAGES C)
    include_directories(include)
    set(CMAKE_C_FLAGS “-Wall”)
    file( GLOB SRCS *.c *.h)
    add_executable(teste02
    main.c
    funcoes.c
    )
    install(TARGETS teste02 RUNTIME DESTINATION bin)

    Agora vem a explicação do CMAKE

    O cmake_minimum_required diz a versão mínima do cmake exigida para executar o script.

    project diz, qual linguagem é o alvo que iremos compilar. Neste caso indiretamente dizemos também o compilador e informações a respeito de linkagem.

    include_directories, diz para incluirmos o diretório corrente.

    Já o comando set, avisa o compilador para ativar o parâmetro -Wall

    O file pesquisa, como fonte qualquer arquivo de extensão .c ou .h;

    E por fim add_executable, monta o binário (executável) a partir dos arquivos .c adicionados.

    O install, cria um fluxo de instalação. Já é o processo tipo make install.

    Blog C/C++
    KDevelop novo projeto

    Explicarei agora como criar um projeto simples em C, usando o KDevelop.

    Criando um novo projeto em KDevelop

    Primeiramente entre no KDevelop na menu Project.

    Selecione o item New From Template, conforme figura abaixo:

    Agora o KDevelop pedirá para que informe o nome do projeto e sua localização, também indicando o modelo do projeto.

    Selecione em Category o item Standard.

    Em Project Type, selecione Terminal.

    E em Terminal, seleciona CMAKE C.

    Por fim, pressione o botão Próximo, conforme figura acima.

    Agora, o KDevelop permite que inclua o sistema de controle de versão.

    O KDevelop tem integração com GIT, SVN, entre outros.

    Porem neste sistema, não iremos apresentar este tópico, ficando para outro post.

    Selecione a opção None, e click no botão concluir.

    Por fim, o KDevelop irá apresentar as informações de configuração do projeto que será criado, pedindo para vc corrigir eventuais erros.

    Click em OK.

    Pronto, seu projeto esta pronto para ser executado!

    Blog C/C++
    KDEVELOP

    Neste artigo, tratarei sobre uma das mais poderosas e versáteis ferramentas de desenvolvimento Linux para C.

    O Kdevelop é uma IDE de desenvolvimento rápido para C e outras linguagens. Ele permite o desenvolvimento cruzado, entre sistemas operacionais, tais como Windows, Linux, Mac , entre outros.

    Atualmente o produto esta na versão 5.6 e pode ser baixada em :

    https://www.kdevelop.org/download

    Alguns recursos desta importante ferramenta:

    Analise semântica de C/C++ incorporada

    A IDE, permite rastrear classes, tipos, funções, capturando e analisando complementos, e detalhes.

    Suporte à linguagem C / C ++ do KDevelop

    Controle de versão

    Para desenvolver em grupos é necessário técnicas de controle de modificação. O KDevelop possui suporte aos principais sistemas, como CVS, Subversion, Mercurial, etc.

    O recurso "Mostrar anotação" com o Git VCS.

    Sistema de compilação

    O C é uma linguagem, porem ela utiliza argumentos scripts para gerar os binários. Tais scripts de montagem tambem são suportados.

    A janela de configuração do CMake do KDevelop

    Iremos abordar, tais scripts, quando falarmos de compilação cruzada em C.

    Iremos abordar mais adiante como usar esta fantástica ferramenta.

    Blog C/C++ Sem categoria
    Callback em C

    Callback é um função que é passada através de uma outra função.

    O C realmente é uma linguagem fantástica. Ela permite isso e muito mais.

    Podemos implementar um ponteiro atribuindo ele como uma função e simplesmente chama-la.

    Vou demonstrar seu uso neste exemplo:

    No exemplo acima, temos duas funções:

    Chamada1 e Chamada2, ambas executam funções bem simples.

    A função exCallBack, tem como parâmetro um ponteiro de função.

    Verifique que ao passar a função, usamos o &, pois não passamos a função em si, mas o endereço da mesma.

    Espero ter ajudado com este exemplo simples de uso de callback.

    Abraço a todos.

    Blog C/C++
    Exemplo de Ponteiro de Memória em C

    Estaremos aqui abordando o uso de ponteiro de memória, neste pequeno exemplo de código.

    Vemos aqui 3 variáveis:

    • mensagem
    • pmensagem
    • pmensagem2

    Podemos notar, que a primeira é um vetor estático, enquanto as duas seguintes são ponteiros.

    O ponteiro trabalha como uma variável numérica, pois armazena o endereço. Desta forma quando referenciamos um ponteiro, não mostramos o valor, mas sim o endereço que ele se encontra.

    O C é uma linguagem de tipagem fraca, com isso podemos manipular ponteiros de caracteres, aplicando cálculos matemáticos, como no exemplo acima.

    Notemos que ao indicar um ponteiro, podemos apontar qualquer parte do endereço de um segmento de memória, não só o começo. No exemplo acima, pulamos cada vez que lemos a posição 1 byte.

    Desta forma podemos ir rolando o ponteiro para a posição que quisermos.

    Blog C/C++
    Alocação de variável dinâmica

    Estaremos abordando como alocar uma variavel dinamica em C.

    No exemplo acima, podemos verificar, que existe uma variavel pdinamica. Que é um ponteiro de variável.

    Iremos explicar o ponteiro em outro post.

    O comando malloc, pega um segmento da memória, e reserva para o ponteiro.

    Alocação de memória deve ser usada com muito cuidado, pois seu uso inadvertido, pode causar crash do sistema, ou o que chamamos de memory leak. O memory leak é como o próprio nome diz, quando perdemos o controle das alocações, não removendo a alocação da memória após seu uso.

    Na alocação dinâmica, a alocação e desalocação da memória é feita pelo software (programador), se houver uma falha no processo de desalocação aquele segmento de memória ficará inutilizado até que a aplicação feche.

    Em situações onde houver rechamada constante de um bloco de instruções que perde memória, o programa irá capturar segmentos de tal volume, que em um dado momento a aplicação ficará sem recursos (memória livre disponível).

    O comando free, já faz a liberação da memória, quando apontamos o endereço da memória, dizemos ao Sistema Operacional, que aquele segmento de memória criado no endereço apontado, já pode ser liberado.

    Como o sistema operacional já sabe o tamanho criado no momento da alocação, não é necessário identificar o tamanho do segmento.

    Sem categoria
    Exemplo de alocação estática em C

    Apresentarei um exemplo bem simples de alocação estática em C.

    Vamos aprender um pouco.

    Neste exemplo, acima, declaramos a variável estática.

    O que podemos aprender aqui, bem neste exemplo muito simples. Temos 3 aprendizados.

    1. Alocação de variável estática
    2. Carga na memória da variável através do sprintf
    3. Impressão na tela pelo printf.

    Espero ter ajudado!

    C/C++ Delphi Lazarus Sem categoria
    Comandos do GDB

    O GDB é acrônimo GNU DeBuger, e é utilizado para depurar aplicações escritas em C, C++, Kylix, Delphi entre outras.

    Como realizar a carga do GDB

    gdb -d <aplicacao> [source]

    Onde Aplicacao é aplicação que se deseja debugar.

    source é aonde estão os fontes do projeto.

    Recomendação:

    Posicione o gdb no local dos fontes, fazendo a chamada da aplicação pelo caminho completo, desta forma, pode ignorar o local (source). ankara escort çankaya escort ankara escort çankaya escort escort ankara çankaya escort escort bayan çankaya istanbul rus escort eryaman escort escort bayan ankara ankara escort kızılay escort istanbul escort ankara escort ankara rus escort escort çankaya ankara escort bayan istanbul rus Escort atasehir Escort beylikduzu Escort Ankara Escort malatya Escort kuşadası Escort gaziantep Escort izmir Escort

    Exemplo de código:

    Principais comandos GDB

    Breakpoint (b)

    O comando b adiciona um break point (ponto de debug) para analise, sua sintaxe é bem simples.

    b source:linha

    Run (r)

    O comando r, roda a aplicação, iniciando o debug da mesma.

    Kill (k)

    O comando k, para a aplicação, finalizando o debug.

    Quit (q)

    O comando q, sai do debug.

    List (l)

    O comando l mostra um fragmento do fonte em que esta. Ele usa o fonte que vc apontou no source.

    Display

    O comando display, mostra o conteúdo de uma variável ou expressão.

    O comando p, mostra o conteúdo de uma variável.

    Sintaxe:

    p [nome_variavel]

    Continue (c)

    O comando c, vai até o próximo break point.

    Next (n)

    O comando n, executa o programa até a próxima linha, mas não muda a tela.

    Step (s)

    O comando s, executa o comando até o próximo linha, mudando a tela.

    Step into (si)

    O comando si, executa exatamente uma instrução entrando dentro desta, se houver funções internas.

    Finish

    O comando finish, executa a linha até o final desta.

    Info threads

    O comando info threads, lista as threads apontando informações das mesmas.

    Info breakpoints

    O comando info breakpoints ou i break, mostra os breakpoints que adicionei no meu debug durante a execução.

    Sintaxe:

    i break

    mostra lista de breakpoints adicionados no debug
    Comando i break

    Info args

    O comando info args, mostra os argumentos passados pela função que foi chamada.

    Exemplo:

    info b

    comando lista os break points criados.

    thread

    O comando thread, muda a execução para alguma thread especifica.

    Clear

    O comando clear, apaga todos os break points ativos.

    Delete

    O comando delete, apaga o break point criado, deve ser usado o número de identificação deste break point.

    Exemplo

    delete 1

    Deleta o primeiro breakpoint criado

    Backtrace (bt)

    Mostra a cadeia de chamada de funções

    sintaxe:

    bt

    DIRECTORY

    Inclui o caminho dos fontes. (Agradeço ao amigo Felipe Resende pela dica)

    Exemplo:

    directory=/home/mm/proj01/src

    Interface de Fontes

    Ativa interface texto de visualização de fontes.

    tui [enable] [disable]

    pt_BRPortuguese