編譯notepad++的錯誤解決

longerandlonger發表於2012-08-12


根據:http://sourceforge.net/apps/mediawiki/notepad-plus/index.php?title=Compiling_Notepad%2B%2B 編譯程式碼,出了一些問題。


  1. 很多標頭檔案找不到,比如 FindCharsInRange.h。解決方法,include的時候要加上標頭檔案所在資料夾,比如  #include "FindCharsInRange\FindCharsInRange.h"。PS:很多檔案都是在 src\WinControls 的子目錄裡,自己找吧。
  2. nullptr未定義。nullptr是C++的新關鍵字,舊的編譯器不識別。用巨集定義就好了。
    #ifndef nullptr
    #define nullptr NULL
    assert(startPos != nullptr && endPos != nullptr);
    #endif

  3. localization.cpp 裡說找不到 POS_RELOAD 這個識別符號的定義。這是二流程式猿犯的拼寫錯誤吧,因為這個檔案裡定義了一個 POS_RELOAOD 常量,注意拼寫:一個是 POS_RELOAD  , 一個是 POS_RELOAOD 。解決方法,將錯就錯,把 POS_RELOAD 改為 POS_RELOAOD
  4. 編譯都通過了,也看到exe檔案了,最後還報了一個:error PRJ0019: 某個工具從以下位置返回了錯誤程式碼: "正在執行生成後事件..."。我參考了這裡的解決方法:

    You can fix this by modifying the project file like this: In Visual Studio, Select the Project (Notepad++) and choose Project > Properties from VS Menu (or hit ALT + F7)

    In the Property Pages window,
    expand the Configuration Properties node
    then, expand the Build Events node
    Select Post-Build Event to view its properties

    Modify the Command Line Property to look like this:
    copy ..\src\config.model.xml ..\bin\config.model.xml
    copy ..\src\langs.model.xml ..\bin\langs.model.xml
    copy ..\src\stylers.model.xml ..\bin\stylers.model.xml

    Click OK and Build away...

 貌似最後要把exe檔案放到 PowerEditor\bin 目錄下來執行?或者把 PowerEditor\bin 目錄下的檔案拷貝到Debug(Release)目錄下。

相關文章