顯示具有 VisualStudio 標籤的文章。 顯示所有文章
顯示具有 VisualStudio 標籤的文章。 顯示所有文章

2017年12月26日 星期二

Visual Studio 更改預設 include目錄 不用每次重設

Visual Studio 更改預設 include目錄 不用每次重設

有額外掛其他函式庫的話每次要重建一個新專案,都要重來過更改每一個目錄檔案,這實在是很麻煩痾。
找了一些方法可以永久設置並且對於已經設置好的專案也有效果!
最底下有人懶人包一件安裝,只要把.h檔案放進去桌面產生的捷徑內就好。

設置目錄文件

VisualStudio預設讀取的檔案目錄
%USERPROFILE%\AppData\Local\Microsoft\MSBuild\v4.0
直接貼上就好不用自己改使用者名稱,進來之後可以看到有4個檔案
其中
  • Microsoft.Cpp.Win32.user.props
  • Microsoft.Cpp.x64.user.props
是我們要修改的檔案,就是選擇64位元跟32位元的時候不同的位置
先在這裡新建兩個資料夾分別是(之後做完在改你自己要的名字區分不同程式)
  • include
  • lib
接著先修改 Microsoft.Cpp.x64.user.props 這一份檔案,在 </Project> 前加入下面的字樣
  <!-- UserDfine -->
  <PropertyGroup>
  <IncludePath>$(UserRootDir)\include;$(IncludePath)</IncludePath>
  <LibraryPath>$(UserRootDir)\lib;$(VC_LibraryPath_x64);$(WindowsSDK_LibraryPath_x64);$(NETFXKitsDir)Lib\um\x64</LibraryPath>
  </PropertyGroup>
修完之後差不多變成這個樣子
再來是 Microsoft.Cpp.x64.user.props 這一份檔案,就是把剛剛有x64的地方改成x86
  <!-- UserDfine -->
  <PropertyGroup>
  <IncludePath>$(UserRootDir)\include;$(IncludePath)</IncludePath>
  <LibraryPath>$(UserRootDir)\lib;$(VC_LibraryPath_x86);$(WindowsSDK_LibraryPath_x86);$(NETFXKitsDir)Lib\um\x86</LibraryPath>
  </PropertyGroup>

放入文件

這邊用 gcc 的文件 bits/stdc++.h 做示範,文件可以從這裡下載
https://charlottehong.blogspot.tw/2017/06/visual-studio-2017.html
這個文件的功用是把 C++ 全部的函式庫都載入,這樣妳就不用擔心少載入什麼還要打了;當然這會有一些副作用,不過練習的時候可以少打確實有一些益處,實際開發的專案就不建議這麼做了。
把它丟進來吧

實測

再來需要重啟一下你的VisualStudio,如果你正開著的話。
測試一下開一個全新專案能不能直接引入(舊有已經建立的專案也有效)
/*****************************************************************
Name : 
Date : 2017/12/26
By   : CharlotteHonG
Final: 2017/12/26
*****************************************************************/
#include <iostream>
#include <bits/stdc++.h>
using namespace std;
//================================================================
int main(int argc, char const *argv[]){
    vector<int> chg;
    return 0;
}
//================================================================
有的話就可以瞜~再來自己丟進去就好了
如果需要分類,比如說opencv你想額外建一個資料夾就修改文檔
$(UserRootDir)\include;$(IncludePath)
這裡的 $(UserRootDir) 就是底下這個位置
%USERPROFILE%\AppData\Local\Microsoft\MSBuild\v4.0
用分號隔開表示多個,有第三個就在加一個分號比如說加一個 opencvInc 資料夾
<IncludePath>$(UserRootDir)\opencvInc;$(UserRootDir)\include;$(IncludePath)</IncludePath>

一件安裝懶人包

https://goo.gl/aAHg62
安裝完畢桌面產生一個捷徑就是文中說明的位置,把檔案置放進去就好了。

參考

2017年12月21日 星期四

Visual Studio 2017 專案檔案越來越大 ipch 可以刪除嗎

Visual Studio 2017 專案檔案越來越大 ipch 可以刪除嗎

可以安新把他幹掉吧,事實上還有更多可以刪除,他的路徑在
\.vs\Sift\v15\ipch\AutoPCH
這個文件內的資料匣是一堆亂碼,可以直接全砍; .vs 這個資料夾刪除也可以直接刪除,下次打開會自動重建, 不過這會導致已經打開的頁面還有,頁面停留所位置等等的信息被刪除,如果要複製給別人直接刪除是個好做法。
其他可以刪除的文件可參考gitgub上的官方文件,文件裡面有提到的副檔名都是不重要可以看刪除的。

參考

I’m not only a C# moderator but also a C++ user :} The ipch directory and the many, many new files generated by the compiler can be safely deleted. In fact they should be deleted (and probably are) for clean builds. I teach a C++ college class myself and here is what I require my students to do.
In the solution folder delete all bin, obj, ipch, debug and release directories.
Delete any .suo files
Delete any .user files
Delete any .ncb files
Delete any .sbr files
Delete any .*log files (for VS 2010)
Zip up the entire solution directory for submission. This ensures that the solution and project structure remain intact.
PS I’ll move the post to the C++ forums.

Visual studio 如何自動開啟 錯誤清單

Visual studio 如何自動開啟 錯誤清單

最初一開始設定時候如果選擇 C++ 就不會自動開啟,選擇一般才會。後來才發現原來可以自己手動開啟,在選項裡面。
打勾就可以正常使用了

2017年12月12日 星期二

Visutal studio 2017 更新後 CUDA9.0 出錯 如何更正

Visutal studio 2017 更新後 CUDA9.0 出錯 如何更正

上次的更新拿掉了一些更新,這次的更新 CUDA9.0 也變得不支持了,而且沒辦法降低版本。解決辦法可以安裝先前的套件,他就會自動運行了。
錯誤訊息
unsupported Microsoft Visual Studio version! Only the versions 2012, 2013, 2015 and 2017 are supported!

Step1

開始搜尋 Visual Studio Installer 開啟安裝檔案程式,然後選擇修改
install this package
裝回來之後 VS2017 重啟之後就可以編過 cuda 測試的代碼了
then restart VS2017

Step2

改變方案版本

Select Visual Studio 2015

other

但是這還是有問題,我不知道為何改過之後他就不會自動重新編譯檔案了,即便我更改了代碼,解決辦法就是使用 Ctrl+F7 重新編譯所有檔案。
這個可能不是好辦法,專案如果很大不可能每次都重新編譯所有檔案,最好的辦法只能等待CUDA更新或是乾脆降板使用 VS2015,使用舊版的 VS2017。
But this have a problem.
VS can not rebuild file.
Even if change code.
Use Ctrl+F7 rebuild all file.
or reinstall old version visual studio.

參考 Referance

2017年12月2日 星期六

windows powershell 如何安裝 pycrypto

Windows powershell python3 如何安裝 pycrypto

  1. open “x86_x64 Cross-Tools Command Prompt for VS 2017” with administrator privilege in start menu.
  2. set CL=-FI”%VCINSTALLDIR%Tools\MSVC\14.11.25503\include\stdint.h”
  3. pip install pycrypto
第一個是一個捷徑的名字,位置在
C:\ProgramData\Microsoft\Windows\Start Menu\Programs\Visual Studio 2017\Visual Studio Tools\VC
地二個其中 VCINSTALLDIR 這麼變量好像沒有,可以手動取代成
C:\Program Files (x86)\Microsoft Visual Studio\2017\Community\VC\

參考

2017年11月12日 星期日

Visual Studio 2017 stdio.h winres.h atlbase.h 找不到

Visual Studio 2017 stdio.h winres.h atlbase.h 找不到

更新之後出現了
Cannot open include file: 'atlstr.h' Cannot open include file: 'winres.h'
後來發現連 #include <stdio.h> 這個也會找不到
解決辦法重新安裝相關套件
  • 安裝 ATL支援,就可以有 atlstr.h 了
  • WindoiwsSDK 上面也有更新版的,那個版本沒有winres.h的樣子

2017年10月25日 星期三

Visual Studio 如何完全隱藏執行視窗 console

Visual Studio 如何完全隱藏執行視窗 console

找了不少方法有蠻多都是這個,不過這個只是變得快一點消失而已,還是會閃一下
HWND hWnd = GetConsoleWindow();
ShowWindow(hWnd, SW_HIDE);
後來找到比較實用完全隱藏的方法
#pragma comment(linker, "/subsystem:\"windows\" /entry:\"mainCRTStartup\"")

2017年9月7日 星期四

Visual Studio 17 更新後 win32主控台 消失不見

Visual Studio 17 更新後 win32主控台 消失不見

其實還在,只是換了一個名字,在這裡
然後下一個頁面也改了,不過內容還是一樣UI變得比較簡潔

2017年9月5日 星期二

C/C++ 編譯時如何更換圖示 gcc 與 Visual Studio

C/C++ 編譯時如何更換圖示 gcc 與 Visual Studio

Visual Studio

這個比較簡單只要直接加入資源即可
這裡要注意如果是ico選ico才看的到
然後依據你的編譯模式 x86/x64 和 debug/release 找到相應的檔案,或者你退到最外面直接在右上角搜索 *.exe 也可以,就可以看到圖示了。

gcc

這個比較複雜一點,寫了一個程序可以製作檔案,直接下載使用即可。

產生資源檔

先把你的圖示ico與下載的檔案create_resource_release放在一起,然後直接拉進去就可以產生了。
或者用命令
create_resource_release.exe CHG.ico
你可以一次拉多個檔案進去
即可產生 CHG_icon.o
在來編譯的時候只要加入他即可,例如我編譯一個cpp sou.cpp 下這樣的命令
g++ CHG_icon.o sou.cpp -o sou.exe
產生出來的檔案就有圖示了

2017年8月6日 星期日

如何改 Windows 10 桌面右鍵的選單內容的快捷鍵

如何改 Windows 10 桌面右鍵的選單內容的快捷鍵

先按一下開始直接打字搜尋 regedit 進入登錄檔編輯器
接著在上面的路徑輸入,舊版的沒有上面那一條好像自己慢慢點進去
電腦\HKEY_CLASSES_ROOT\Local Settings\MuiCache
再來一路開進去
這邊以 VS 為例,點兩下進去把
在 Visual Studio 中開啟(&V),後面的V改成你要的任意快捷鍵就可以了。

2017年7月21日 星期五

Visual Studio 編譯 OpenCV 3 的擴充 Contrib 函式庫

OpenCV 3.2.0 的擴充 Contrib 函式庫如何編譯 與 使用 (Visual Studio)

關於一般的使用可以參考站內文章:OpenCV 3.2.0 vc14 如何安裝在 Visual Studio 2017
OpenCV 從第三版開始就把一些函式庫拆出來放到 Contrib 上如果要使用要自己重新編一次整份,這個編譯CPU不好可能要不少時間。
站長編譯的 VS2017 版本載點如下;點擊安裝即可,會自動部屬環境變數。
站內連結 懶人包http://charlottehong.blogspot.com/2017/12/opencv320-contrib.html

導航

  • 下載
  • CMAKE 產生編譯檔案
  • MAKE 編譯檔案
  • 建立檔案

下載

記得版本就下對opencv341要對opencv341 contrib,另外 VS2017 多次改版 cmake 要跟著升級不然make出來的東西VS不能編譯,會一堆失敗。
我第一次使用的時候版本錯了,一直出現錯誤找不到原因
cmake 會彈出 error configuring process, project files may be invalid 的錯誤信息
出現這個八成是版本錯了或者是沒有使用圖形介面選路徑(這個應該是cmake的bug)
版本從這裡選擇不要直接直接下
懶人包連結:
如果有安裝 Git 可以直接打指令省下解壓縮時間與空間

git clone -b 3.4.1 https://github.com/opencv/opencv

git clone -b 3.4.1 https://github.com/opencv/opencv_contrib
沒有的話按右邊下載zip檔案下來把兩個都下載下來

下載 cmake

根據自己的作業系統選擇正確的版本
安裝的時候創建一下捷徑與環境變數


CMAKE

打開之後最上面兩個路徑,第一個是opencv的路徑,如果是用 git 下載的就是選到下載的解壓後的資料夾,如果是從官方下載的選到source資料夾;
第二個是編譯後的路徑,選到你喜歡能夠找到的位置即可,記得創個空資料夾包起來。
(圖中我是從git下載的,如果下載zip資料夾名會多版本號)
先按左下角configure,然後跳出要你選編譯器,選你正在用的版本;注意圖中有個Win64建議選64位元的,效能較佳。
這邊第一次可能會卡一下,第一次時需要從網路下載缺失的套件,記得連網。
找到 ,輸入你下載的 opencv_contrib 中的 modules。
注意這裡不能貼上路徑會出錯,一定要按右邊按鈕選路徑(可能是bug)。
然後再按一下 configure ,第二次如果會出錯,看一下上面提到的。
接著按一下 Generate 就完成了,右邊 Open Project 可以直接打開;如果你有多個 Visual Studio 最好手動打該正確的版本,按一下打開專案,然後再找到路徑內的專案打開,再來別急著自己按。
到此完成第一階段了,已經產生需要編譯的檔案了


編譯生成檔案

對著專案按右鍵重建方案,準備好在按這裡會編譯很久且途中不能反悔關不掉;我自己實測i7 4790K約15~20分、i5 4460會到1小時。
這裡我是使用Debug模式重建,如果你需要使用Release模式編譯OpenCV需要在這裡選擇;兩個都需要就要個別編譯一次!
建好之後檢查一下底下有沒有錯誤
最後對著INSTALL按下僅限專案->僅建置INSTALL
完成編譯了,只剩下使用。

如何使用 OpenCV

之後找到install這個資料夾,留這個即可剩下的都可以砍了
把名稱更改為 OpenCV320_VC15 放到C槽底下
再來下載兩個批次檔:https://mega.nz/#F!B993FSKJ!NZ2YRRUGSb9r4JQQyHslpw
把AddPath放到這裡來運行(這個只是新增bin到環境變數)
把CreatList放到這裡點兩下運行,會多出兩個文字文件,先把他打開放著。(這個只是取得這個資料夾內所有 .lib 檔名稱)
打開你 Debug 可以看到這裡的檔案每個檔名結尾都有一個d表示是Debug模式用的,沒有Debug是給Release用的,因為這裡還沒編譯打開查看會是空的。


專案的建設

先開一份空專案
貼上測試的代碼:
/**********************************************************
Name :
Date : 2016/05/29
By   : CharlotteHonG
Final: 2016/05/29
**********************************************************/
#include <iostream>
#include <opencv2/opencv.hpp>

using namespace cv;

int main(int argc, char const *argv[]) {
    /* 畫布 */
    Mat img(270, 720, CV_8UC3, Scalar(56, 50, 38));
    /* 直線 */
    line(img, Point(20, 40), Point(120, 140), Scalar(255, 0, 0), 3);
    /* 實心方塊 */
    rectangle(img, Point(150, 40), Point(250, 140), Scalar(0, 0, 255), -1);
    /* 實心圓 */
    circle(img, Point(330, 90), 50, Scalar(0, 255, 0), -1);
    /* 空心橢圓 */
    ellipse(img, Point(460, 90), Size(60, 40), 45, 0, 360, Scalar(255, 255, 0), 2);
    /* 不規則圖形 */
    Point points[1][5];
    int x = 40, y = 540;
    points[0][0] = Point(0 + y, 50 + x);
    points[0][1] = Point(40 + y, 0 + x);
    points[0][2] = Point(110 + y, 35 + x);
    points[0][3] = Point(74 + y, 76 + x);
    points[0][4] = Point(28 + y, 96 + x);
    const Point* ppt[1] = { points[0] };
    int npt[] = { 5 };
    polylines(img, ppt, npt, 1, 1, Scalar(0, 255, 255), 3);
    /* 繪出文字 */
    putText(img, "Test Passed !!", Point(10, 230), 0, 3, Scalar(255, 170, 130), 3);
    /* 開啟畫布 */
    imshow("OpenCV Test By:Charlotte.HonG", img);
    waitKey(0);
    return 0;
}
修改屬性(先確認上方模式 Debug - x64 要是對的)
加入include目錄
加入lib目錄
加入lib檔案
目錄底下每個lib都要打上來(剛剛打開的文件夾可以一次複製全部)
然後就完成了
接下來你可以考慮把剛剛的模式改為Release模式在重新編譯一次;接著把檔案重新複製到C曹執行剛剛重複的步驟,就可以獲得兩個版本的檔案了,其中只需要注意引入的dll檔案,這裡我已經幫你把檔案清待分開了,在不同的模式輸入不同的清單即可。


其他補充 - 快速流程

  1. 下載指令替代
  2. Cmake部分其實可以用指令替代
  3. 指令開啟專案 -> CTRL+SH+B -> 換Release版本在一次
  4. 對著 INSTALL 右鍵, J, B
  5. install資料夾指令移動到C曹
  6. 指令配置bin環境變數
可以看參考這一篇,有做一半的流程
https://charlottehong.blogspot.tw/2018/03/opencv-341-contrib.html