[問題] 請問如何取得程式(.exe)的位置
程式碼:https://goo.gl/7SUXU5
我想要簡化gcc編譯OpenCV的參數不用每次都
g++ -I"C:\OpenCV\include" -L"C:\OpenCV\MinGw_64\lib" loadimg.cpp
-lopencv_core2413 -lopencv_highgui2413 -o loadimg & loadimg.exe
打這麼長一串
自己寫了一個cv2.exe會自動補上缺的
也就是說我只要執行
cv2 loadimg.cpp -o loadimg
這樣就可以了
cv2.exe放在 C:\OpenCV\MinGw_64\bin 並加入環境變數
目前代碼我是直接寫死的直接指到 C:\OpenCV
我只要OpenCV的函式庫換位置就不能用了(cv2.exe一起放在裡面)
爬文之後使用
char org_dir[128];
getcwd(org_dir, 128);
可以取得執行檔位置
不過我發現他的位置應該是工作目錄
當我使用
cd %userprofile%/Desktop
然後再依靠環境變數執行
cv2
他回傳的位置就是在桌面
而不是在cv2.exe的位置
QQ這要怎麼辦
--
※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 120.117.72.133
※ 文章網址: https://www.ptt.cc/bbs/C_and_CPP/M.1464514661.A.4AF.html
推
05/29 17:44, , 1F
05/29 17:44, 1F
看了一下不怎麼懂QQ 好像就是g++的簡化指令,具體不曉得怎麼做
比如說 g++ -cv2 souce.cpp -o source 簡化成這樣嗎
→
05/30 22:57, , 2F
05/30 22:57, 2F
試著把它印出來,取得的是(.exe)的名字,有什麼特別用法嗎?
試著把工作目錄切到同一個位置,確實會回傳當前工作位置
推
05/31 13:47, , 3F
05/31 13:47, 3F
太感謝你了,這是正解~~
我一直編不出來找超久,結果是忘記windwos.h ((大哭
後來翻到的中文資料http://goo.gl/jxLRhc
範例:
#include <iostream>
#include <windows.h>
using namespace std;
int main(int argc, char const *argv[]){
char org_dir[MAX_PATH];
GetModuleFileName(NULL,org_dir,MAX_PATH);
cout << org_dir << endl;
return 0;
}
※ 編輯: hunandy14 (114.35.139.127), 05/31/2016 23:36:01