日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

vs2013编译apr时遇到的疑难杂症

發(fā)布時間:2025/5/22 编程问答 24 豆豆
生活随笔 收集整理的這篇文章主要介紹了 vs2013编译apr时遇到的疑难杂症 小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.

以下內容轉自:http://nohup.yne.fr/2014/07/apache-22-msvc-2013.html

Apache 2.2 & MSVC 2013

La branche 2.2.x du serveur http d’Apache a une importance particulière carmod_perl? y fonctionne correctement ce qui n’est pas le cas avec la nouvelle branche 2.4. Apache 2.2, bien qu'encore supporté, commence à dater. La version 2.2.0 date de décembre 2005. Depuis, les compilateurs ont évolués et des problèmes commencent à apparaitre. C’est le cas avec Visual Studio 2013 et sa ? Plateform Toolset v120 ?.

Voici ce qu’il faut corriger pour pouvoir compiler le serveur http 2.2 d'Apache avec MSVC 2013.

1) Télécharger

  • Les?sources du serveur http 2.2.xx d’Apache?depuis :http://www.apache.org/dist/httpd/?
  • Les?sources de APR-iconv. Les librairies pcre, APR et AP-utils sont incluses avec les sources de Apache mais pas APR-iconv? car les systèmes Unix fournissent déjà iconv() . Pour Windows ce n’est pas le cas, il faut donc télécharger cette librairie et la mettre dans le répertoire srclib sous le nom apr-iconv (sans aucun numéro de version). On trouve cette librairie ici :?https://apr.apache.org/download.cgi?
  • awk?est utilisé pour générer la configuration du serveur (httpd.conf). On peut le télécharger ici??http://sourceforge.net/projects/gnuwin32/files/gawk/?sous le nom de gawk.
  • ?2) Environnement

    Le PATH doit inclure un chemin sur awk.exe et sur les binaires de MSVC?
    C:\Program Files (x86)\Microsoft Visual Studio 12.0\VC\bin.

    Ouvrir une console (cmd) dans le répertoire contenant les sources d'Apache.

    Exécuter le script "C:\Program Files (x86)\Microsoft Visual Studio 12.0\VC\vcvarsall.bat"

    3) Compiler

    Normalement il suffirait de taper la commande
    ??? nmake -f Makefile.win
    mais ?a ne marche pas car on obtient 5 erreurs du type:

    pr_atomic.obj :?error LNK2019: unresolved external symbol __InterlockedXxxx referenced in function _apr_atomic_inc32@xx

    Les 5 erreurs sont:

    Creating library .\Release\libapr-1.lib and object .\Release\libapr-1.exp
    apr_atomic.obj : error LNK2019: unresolved external symbol __InterlockedIncrement referenced in function _apr_atomic_inc32@4
    apr_atomic.obj : error LNK2019: unresolved external symbol __InterlockedExchangeAdd referenced in function _apr_atomic_add32@8
    apr_atomic.obj : error LNK2019: unresolved external symbol __InterlockedExchange referenced in function _apr_atomic_set32@8
    apr_atomic.obj : error LNK2019: unresolved external symbol __InterlockedDecrement referenced in function _apr_atomic_dec32@4
    apr_atomic.obj : error LNK2019: unresolved external symbol __InterlockedCompareExchange referenced in function _apr_atomic_cas32@12
    .\Release\libapr-1.dll :?fatal error LNK1120: 5 unresolved externals

    NB;?Ce problème n’apparait pas si on génère une version 64 bits d’apache.

    4) Error LNK2019

    Pour corriger cette erreur? il faut éditer le fichiersrclib\apr\atomic\win32\apr_atomic.c?et mettre en commentaire (ou supprimer)?tous?les casts tel que celui-ci (il y en a 9 en tout) :?

    #else
    return (?/*(apr_atomic_win32_ptr_ptr_ptr_fn)*/?InterlockedCompareExchange)(mem, with, cmp);
    #endif


    (apr_atomic_win32_xxxx) est mis en commentaire 10 fois.
    NB:?Ceci supprimera les erreurs mais en échange on aura 7 warnings?C4047 et 5 warnings?C4024?à la compilation.

    5) Error LNK2011

    A ce stade, si on tentait à nouveau de compiler on obtiendrait cette nouvelle erreur :

    adobe-stdenc.obj :?error LNK2011: precompiled object not linked in; image may not run
    ..\Release\iconv\adobe-stdenc.so : fatal error LNK1120: 1 unresolved externals
    NMAKE : fatal error U1077: '"C:\Program Files (x86)\Microsoft Visual Studio 12.0\VC\BIN\link.EXE"' : return code '0x460'
    Stop.


    Cette erreur, de manière générale, vient du fait que
    1.??? un fichier xxxx.c est compilé pour créer un fichier xxxx.pch,?
    2.??? ce fichier xxxx.pch est utilisé pour compiler d’autres fichiers .c
    3.??? au moment de l’édition de lien xxxx.obj n’est pas utilisé
    (Détail ici:?http://msdn.microsoft.com/en-us/library/3ay26wa2.aspx)

    La solution générique a cette erreur consiste donc à ajouter xxxx.obj à la liste des fichiers obj au moment de l’édition des liens.

    Dans le cas de Apache 2.2.x, éditer le fichier srclib\apr-iconv\build\modules.mk.win, localiser cette règle et y ajouter la partie surlignée en vert.

    .c{$(OUTPUT_DIR)}.so:
    ??? $(SILENT)cl $(ALL_CFLAGS) /Fo$*.obj /Yuiconv.h /c $<
    ??? $(SILENT)link $(ALL_LDFLAGS)?$(MODRES).obj?$*.obj $(API_LIBS) /out:$@ \
    ??? ??? /base:@"..\build\BaseAddr.ref",$(@F)


    Pour comprendre il faut bien voir que $(ALL_CFLAGS) utilisé à chaque compilation contient ... /Fd$(MODRES).pdb /Fp$(MODRES).pch ...

    6) Compiler (pour de bon)

    Une fois ces erreurs corrigées on peut lancer depuis la racine des sources
    ? nmake -f Makefile.win???(pour seulement compiler)
    ou
    ? nmake –f Makefile.win installr????(pour compiler et installer dans C:\Apache22)

    Le répertoire d’installation peut être spécifié avec le paramètre INSTDIR

    ? nmake -f Makefile.win INSTDIR="D:\my\Path\Apache" installr

    Regardez les commentaires au début du fichier Makefile.win pour découvrir les différents paramètres pouvant être utilisés? pour customiser la compilation et/ou l’installation.

    7) Démarrer le serveur HTTPd

    Aller dans le répertoire bin de apache (par défaut C:\Apache22\bin) et exécuterhttpd.exe






    Publié il y a?28th July 2014?par?jef Libellés:?apache?mod_perl?MSVC2013?Windows


    總結

    以上是生活随笔為你收集整理的vs2013编译apr时遇到的疑难杂症的全部內容,希望文章能夠幫你解決所遇到的問題。

    如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。

    主站蜘蛛池模板: 丰满肥臀噗嗤啊x99av | av五月| 欧美18一20男同69gay | 国产精品无码电影 | 全部免费毛片在线播放 | 日本特黄特黄刺激大片 | 久久国内精品视频 | 日韩在线一 | 黄视频网站在线 | 国产午夜成人久久无码一区二区 | av大全在线观看 | 亚洲成人中文字幕在线 | 毛片在线播放视频 | 精品一久久| 天堂在线视频免费观看 | 宅男的天堂 | 国产免费一区二区三区最新6 | 色老头网址 | 黄色美女大片 | 天天做天天摸天天爽天天爱 | 一本色道久久88加勒比—综合 | 国产jk精品白丝av在线观看 | 女人一级一片30分 | 黄色一级免费视频 | 男人天堂视频在线观看 | 亚洲综合欧美 | a级片视频网站 | 亚洲人吸女人奶水 | 综合久久久 | 国产精品成人免费精品自在线观看 | 久热超碰 | 国产欧美一区二区三区视频 | 天堂在线精品视频 | 中国黄色三级 | 国产又粗又黄视频 | 欧美国产日韩一区二区三区 | 免费级毛片 | 九九九久久久精品 | 中文字幕一区二区三区人妻四季 | 一级黄色录像大片 | 欧美黄色a | 在线a级| 日韩精品av一区二区三区 | 人妻少妇偷人精品久久久任期 | 五色天婷婷 | 琪琪色在线观看 | 天天躁狠狠躁狠狠躁夜夜躁68 | 免费在线看污视频 | 日韩在线综合 | 伊人久久久久噜噜噜亚洲熟女综合 | 亚洲4438 | 婷婷六月天在线 | 绿帽在线 | 国产靠逼视频 | 寂寞人妻瑜伽被教练日 | 免费av不卡在线观看 | 浮力影院草草 | 中文字幕国产 | 国产精品国产三级国产专播品爱网 | www.久久久久久久 | 亚洲综合免费观看高清完整版 | 超碰女优 | 亚洲另类春色 | 精品一区二区免费看 | 午夜影院一区二区三区 | 欧美a√在线 | 私密spa按摩按到高潮 | 亚洲一区二区在线观看视频 | 国产精品天美传媒入口 | xxxx精品 | 亚洲天堂第一页 | 韩国三级hd中文字幕 | 91性高潮久久久久久久 | 成人在线观 | 国产激情一区二区三区视频免樱桃 | 精品熟妇无码av免费久久 | 激情婷婷六月天 | 中文字幕第十一页 | www久久 | 午夜视频观看 | 国产情侣av自拍 | 免费av毛片| 制服丝袜先锋影音 | 99爱免费 | 国产精品99久久久久久久久久久久 | 强行挺进白丝老师里呻吟 | 男人天堂av网| 丝袜av在线播放 | 日本激情一区二区 | 自拍偷拍麻豆 | 艳母日本动漫在线观看 | 亚洲大片免费看 | 免费黄色91 | 色呦呦在线看 | 成人久久久久 | 天天做天天爱夜夜爽 | 国产成人久久婷婷精品流白浆 | com国产 | 欧美一区二区三区影视 |