【发布时间】:2011-12-17 23:57:21
【问题描述】:
我正在使用 MinGW、gcc 4.4.3 在 Windows 上编程。当我像这样使用主要功能时:
int main(int argc, char* argv[]){
cout << "path is " << argv[0] << endl;
}
在 Windows 上,我得到一个像这样的完整路径:“C:/dev/stuff/bin/Test”。然而,当我在 Linux 上运行相同的应用程序时,我得到了某种相对路径:“bin/Test”。它破坏了我的应用程序!关于如何确保两个系统上的路径都是绝对路径的任何想法?
【问题讨论】:
-
我有理由确定没有办法保证任何这样的事情。如果您需要可执行文件的绝对路径,则需要使用 argv[0] 以外的其他方式来获取它。
-
这也不应该在 Windows 上工作。您是从命令行启动程序还是通过资源管理器启动程序?
-
我正在使用生成文件。 makefile 命令是 bin/test。奇怪,是不是……