Cross-Compiling de Arquivo em Linguagem C (Compilando em Linux, Executando em Windows)

Estava fazendo um PoC (Proof of Concept) e precisava criar um sampler para testes, mas não queria criar uma VM com Windows, instalar GCC ou VS, só para criar um PE32 (Executável para Windows 32bits, arquitetura x86), então fui pesquisar sobre MinGW.

O problema é que a máquina de testes do Lab está usando um Fedora 22 e quando você procura no terminal por “MinGW”, não aparece nada rapidamente.

Buscando nesta wiki, achei o MinGW versão Fedora, que está com outra nomeclatura no package:

https://fedoraproject.org/wiki/MinGW/Tutorial (x86_64-w64-mingw32-gcc)

[root@localhost sampler]# x86_64-w64-mingw32-gcc HelloWorld.c -o HelloWorld

HelloWorld

[root@localhost sampler]# file HelloWorld
HelloWorld: PE32+ executable (console) x86-64, for MS Windows

Agora sim!:)

Espero ter ajudado alguém!:)

@firebitsbr

 

Anúncios

Criando um WebServer em Golang

Puxa, vida! Desenvolver em Golang é muito legal e multicore!

Quero me aprofundar mais nessa linguagem assim como Node.js também.

Nos proximos posts, vou falar mais e mais exemplos.

Para instalar o Golang no Debian 7 e executar códigos-fontes em golang, é preciso:

Passo 1 – instalar o golang (pode-se usar via git, mas isso farei em outro post)

#sudo apt-get install -f golang golang-dbg golang-doc golang-go golang-mode golang-src

Passo 2 – Criar um arquivo para nosso Webserver em Golang:

#vim webserver.go

package main

import (
“net/http”
“fmt”
)

// Default Request Handler
func defaultHandler(w http.ResponseWriter, r *http.Request) {
fmt.Fprintf(w, “<h1>Olá mundo %s! by firebits</h1>”, r.URL.Path[1:])
}

func main() {
http.HandleFunc(“/”, defaultHandler)
http.ListenAndServe(“:8080”, nil)
}

Passo 3 – Salvar o arquivo

Passo 4- executando o script via compilador golang:

#sudo go run webserver.go

Passo 5: Abrir um browser

google chrome -> 127.0.0.1:8080

Captura de tela - 04-09-2013 - 12:48:36