Compilando o CppCMS

35 views
Skip to first unread message

Lucas Nunes

unread,
Feb 21, 2012, 3:29:41 PM2/21/12
to ccppbrasil
Olá!

Pessoal, alguém aí já compilou o CppCMS no Windows?
Eu segui tudo o que dizia (http://cppcms.com/wikipp/en/page/cppcms_1x_build#win32) mas quando mando compilar tá dando um erro:

Linking CXX shared library booster.dll
reactor.cpp.obj invalid or corrupt

Eu já procurei no google, estou desde ontem tentando compilar isso e nada...
Acredito que com o Linux seja mais fácil de compilar, mas eu preciso do CppCMS no Windows...

Alguém pode me dar ajuda?

Att.
Lucas Nunes

Уθя¡ςκ

unread,
Feb 21, 2012, 3:47:36 PM2/21/12
to ccppbrasil
Eu não sei a respeito, mas vc pode seguir a lista de discussão do
CppCMS e perguntar lá, o autor dá suporte bom por lá e como está
chegando perto da versão release 1.0, seus problemas podem ser de
interesse dele.

Уθя¡ςκ

unread,
Feb 21, 2012, 3:49:41 PM2/21/12
to ccppbrasil

Rodrigo Mizobe

unread,
Feb 22, 2012, 9:12:31 AM2/22/12
to ccppb...@googlegroups.com
Lucas, nos utilizamos a cppcms aqui, o unico problema que tivemos em
compilacao foi conflito da std::numeric, pois no windows as funcoes
min e max sao definidas.
Com um undef, voce resolve neste caso.
Porem por esse seu erro fica dificil saber o seu problema.

[]s

Lucas Nunes

unread,
Feb 22, 2012, 9:38:00 AM2/22/12
to ccppb...@googlegroups.com
To achando que talvez o problema esteja nas libs.
Eu to usando o compilador do Visual C++ para compilar o nmake, conforme o exemplo do site.

Qual versão das libs você usou? Qual versão do PCRE você usou?


--
Antes de enviar um e-mail para o grupo leia:
                    http://www.ccppbrasil.org/wiki/Lista:AntesdePerguntar
--~--~---------~--~----~---------------------------------~----------~--~----~
[&] Colabore com a Pesquisa de Preferência de Conteúdo
             para Eventos do Grupo C & C++ Brasil:
                       http://www.surveymonkey.com/s/GBBGTXN
------~----~-------~---~---~---~---~----------------~------------~---------~
[&] C & C++ Brasil - http://www.ccppbrasil.org/
Para sair dessa lista, envie um e-mail para ccppbrasil-...@googlegroups.com
Para mais opções, visite http://groups.google.com/group/ccppbrasil
--~--~---------~--~----~--~-~--~---~----~-----------------~--~----------~
Emprego & carreira:  vag...@ccppbrasil.org
http://groups.google.com/group/dev-guys?hl=en

Rodrigo Mizobe

unread,
Feb 22, 2012, 9:39:30 AM2/22/12
to ccppb...@googlegroups.com
PCRE 8.2.1
ZLIB 1.2.5

2012/2/22 Lucas Nunes <lucas...@gmail.com>:

Rodrigo Mizobe

unread,
Feb 22, 2012, 9:40:18 AM2/22/12
to ccppb...@googlegroups.com
Corrigindo PCRE 8.21

2012/2/22 Rodrigo Mizobe <rodrigo...@fc.unesp.br>:

Lucas Nunes

unread,
Feb 22, 2012, 2:44:17 PM2/22/12
to ccppb...@googlegroups.com
O problema estava na minha compilação do PCRE. Eu compilei outro outro e dessa vez a compilação foi.
MAS... tá dando erro na parte da linkagem... e ainda por culpa do PCRE.

Linking CXX shared library booster.dll
Creating library booster.lib and object booster.exp
pcre_regex.cpp.obj : error LNK2001: unresolved external symbol __imp__pcre_free
pcre_regex.cpp.obj : error LNK2001: unresolved external symbol __imp__pcre_mallo
c
pcre_regex.cpp.obj : error LNK2019: unresolved external symbol __imp__pcre_exec
referenced in function "public: bool __thiscall booster::regex::search(char cons
t *,char const *,int)const " (?search@regex@booster@@QBE_NPBD0H@Z)
pcre_regex.cpp.obj : error LNK2019: unresolved external symbol __imp__pcre_fulli
nfo referenced in function "public: void __thiscall booster::regex::assign(class
std::basic_string<char,struct std::char_traits<char>,class std::allocator<char>
> const &,int)" (?assign@regex@booster@@QAEXABV?$basic_string@DU?$char_traits@D
@std@@V?$allocator@D@2@@std@@H@Z)
pcre_regex.cpp.obj : error LNK2019: unresolved external symbol __imp__pcre_compi
le referenced in function "public: void __thiscall booster::regex::assign(class
std::basic_string<char,struct std::char_traits<char>,class std::allocator<char>
> const &,int)" (?assign@regex@booster@@QAEXABV?$basic_string@DU?$char_traits@D@
std@@V?$allocator@D@2@@std@@H@Z)
booster.dll : fatal error LNK1120: 5 unresolved externals
LINK Pass 1 failed. with 1120
NMAKE : fatal error U1077: 'F:\Develop\cmake-2.8.7-win32-x86\bin\cmake.exe' : re
turn code '0xffffffff'
Stop.
NMAKE : fatal error U1077: '"C:\Program Files (x86)\Microsoft Visual Studio 10.0
\VC\BIN\nmake.exe"' : return code '0x2'
Stop.
NMAKE : fatal error U1077: '"C:\Program Files (x86)\Microsoft Visual Studio 10.0
\VC\BIN\nmake.exe"' : return code '0x2'
Stop.

C:\cppcms-0.999.1>

O que faço agora?


2012/2/22 Rodrigo Mizobe <rodrigo...@fc.unesp.br>

Rodrigo Mizobe

unread,
Feb 22, 2012, 3:04:45 PM2/22/12
to ccppb...@googlegroups.com
Entao, erro de linker, daria para confirmar se voce esta passando as
diretivas certas pro cmake.
Senao, nas ferramentas do sys internals, tem uns programas para checar
os links...

Lucas Nunes

unread,
Feb 22, 2012, 3:25:41 PM2/22/12
to ccppb...@googlegroups.com
Para compilar o PCRE eu usei:
cd C:/pcre-8.30
cmake -G "NMake Makefiles" -DCMAKE_BUILD_TYPE=Release
nmake

Daí ele compilou certinho, gerou 3 .lib.

Depois para compilar o CppCMS tive que fazer assim:
cmake -G "NMake Makefiles" -DCMAKE_BUILD_TYPE=RelWithDebInfo -DCMAKE_INSTALL_PREFIX=c:/cppcms-0.999.1 -DPCRE_INCLUDE=C:/pcre-8.30 -DPCRE_LIB=C:/pcre-8.30 -DZLIB_INCLUDE_DIR=C:/zlib-1.2.6 -DZLIB=C:/zlib-1.2.6 -DPYTHON=C:/Python27


P.

unread,
Feb 22, 2012, 3:36:01 PM2/22/12
to ccppb...@googlegroups.com

Em quarta-feira, 22 de fevereiro de 2012 17h44min17s UTC-2, Lucas Nunes escreveu:
 
Linking CXX shared library booster.dll
Creating library booster.lib and object booster.exp
pcre_regex.cpp.obj : error LNK2001: unresolved external symbol __imp__pcre_free


Este erro indica que o arquivo-objeto pcre_refex.cpp.obj faz referência a um "external symbol" chamado pcre_free.

Isso faz pouco sentido, já que pcre_free é um símbolo definido pela própria PCRE, e não um símbolos externo oferecido por outra biblioteca.

Este sintoma ocorre tipicamente quando, no texto de uma DLL, falta declarar os símbolos públicos como declspec(export). As declarações em cabeçalhos oferecidos ao usuário da DLL seriam complementares, com declspec(import).

Frequentemente, os pacotes de fontes de uma DLL contém apenas um único conjunto de cabeçalhos com declarações, e a escolha entre "export" e "import" é consequência de alguma macro de configuração.

Ou você está falhando ao obedecer as instruções de compilação da PCRE no Windows, ou os scripts de construção da PCRE para Windows estão com defeito.

--
 P.

Lucas Nunes

unread,
Feb 22, 2012, 6:02:58 PM2/22/12
to ccppb...@googlegroups.com
Finalmente, depois de uma tarde inteira, consegui!
Tive que compilar com o MingW32 MSYS. Eu queria com o Visual C++, mas esse tava dando esse erro.
Recompilei tudo com o mingw.

Mas eu mudei os parâmetros do cmake, ao invés de informar as pastas de include e lib seperadamente eu passei usando ponto e vírgula:

cmake -G "MSYS Makefiles" -DCMAKE_BUILD_TYPE=RelWithDebInfo -DCMAKE_INSTALL_PREFIX=F:/cppcms-0.999.1 -DCMAKE_INCLUDE_PATH="F:\pcre\include;F:\zlib\include" -DCMAKE_LIBRARY_PATH="F:\pcre\lib;F:\zlib\lib"

Agora vamo ver o que o CppCMS é capaz...

Obrigado pela ajuda!

Rodrigo Madera

unread,
Feb 23, 2012, 8:30:46 AM2/23/12
to ccppb...@googlegroups.com
Lucas,

Você teve uma dúvida de um produto, que não tem a ver com esta lista. Você deu sorte que alguns membros sabiam sobre o produto e te ajudaram.

Então, eu se fosse você, e apenas como agradecimento para a comunidade, me cadastraria na lista de email do próprio produto, que até te passaram o link, e mandaria um email descrevendo o problema, e os passos que você fez pra resolver.

Assim não somente você leva o assunto pra onde deveria ter ido em primeiro lugar, senão você garante que os próximo poderão seguir teus passos e resolver o problema.

Apenas minha opinião,
Mx

2012/2/22 Lucas Nunes <lucas...@gmail.com>

Уθя¡ςκ

unread,
Feb 23, 2012, 8:38:16 AM2/23/12
to ccppbrasil
Vdd, se for algum problema no produto, pode ser informação que o autor
não tem e ajude ele próprio no suporte de plataformas que ele não
esteja testando completamente... e se não for, vai estar aberta a
resolução na lista do produto...
Reply all
Reply to author
Forward
0 new messages