1

コードは十分に単純です:

#include <iostream>
#include <fstream>
#include <string>

int main(int argc, char* argv[] )
{
    std::ofstream theStream;
    theStream.open("trash.txt");
    theStream << "some words" << std::endl;
    theStream.close();
}

コマンドラインから実行すると、同じディレクトリにある期待されるファイルを取得します。MacOS .app内に実行可能ファイルのコンテンツをパッケージ化した場合、ファイルはどこにも書き込まれません。(または、おそらくそれはただちに消去されますか?)

これが、実行可能ファイルを.appに配置するために使用している簡単なスクリプトです。おそらくそれは私が間違っているところです。

#!/bin/bash

appName=MyApp
if [ $1 ] 
then 
    appName=$1
else 
    echo "usage: convertToApp executableFile"
    exit
fi

if [ -e "$appName" ] 
then
    mkdir $appName.app
    mkdir $appName.app/Contents
    mkdir $appName.app/Contents/MacOS
    mkdir $appName.app/Contents/Resources
    cp $appName $appName.app/Contents/MacOS/$appName
    echo -n 'APPL????' > $appName.app/Contents/PkgInfo
else
    echo "specified file does not exist"
fi

見たいファイルが表示されない理由はありますか?

4

1 に答える 1

6

「trash.txt」の代わりに、フル パスを使用するか、現在の作業ディレクトリを変更してみてください。

于 2010-11-16T18:12:25.647 に答える