Question

Lors de la compilation d'un fichier Erlang avec erlc je peux ajouter des répertoires supplémentaires comprennent comme ceci:

erlc -I /home/trotter/code/open-source/yaws/include src/myapp.erl

Quand je compiler à partir de erl cependant, je ne vois pas une façon de le faire sur la ligne de commande. , Je dois plutôt faire ce qui suit dans le rempl:

> compile:file("src/myapp", 
               [verbose,
                report_errors,
                {i,"/home/trotter/code/open-source/yaws/include"}]).

Y at-il une meilleure façon de le faire que je ne sais pas, comme en passant un argument de ligne de commande pour ERL? Dans le cas contraire, des suggestions pour le séchage ce que jusqu'à ne pas me taper besoin des chemins désagréables à chaque fois que je compile.

Était-ce utile?

La solution

Je compile rarement de la coquille - uniquement pour les petits scripts de test avec c(foo). Ma configuration est la suivante:

J'ai une infrastructure de construction. make construit le logiciel (make est juste une enveloppe pour rebar ici). Je peux alors construire le code à l'intérieur emacs en appuyant sur F12 lié à la commande du compile. En vim vous pouvez faire la même chose avec la commande :make si ma mémoire me sert vim (il a été quelques années). Maintenant, cela bien sûr construit le code et le jeter dans un ebin dir.

L'étape suivante consiste à commencer Erlang avec connaissance du ebin dir:

 erl -pa ./ebin

ce qui signifie que toute référence au module foo va et vérifie ./ebin/foo.beam. Quand je puis décider que je dois fixer un code, je le fixer dans l'éditeur, compiler le code avec F12 puis exécutez l(foo) dans la coquille qui chaud-charge le code.

Il a également l'avantage que toute erreur de compilation est maintenant sous la juridiction de l'éditeur afin que je puisse passer rapidement à l'erreur et la corriger.

Autres conseils

vous pouvez définir ERL_COMPILER_OPTIONS.

voir http://www.erlang.org/doc/man/compile.html

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top