Sau khi một số thay đổi gần đây-ish đối với cabal, tôi hoàn toàn nhầm lẫn về cách cấu hình một tệp thực thi. Trong ~/.cabal/config
, tôi đã bật hồ sơ:Lập hồ sơ thực thi với cabal
[email protected]$ grep prof ~/.cabal/config
library-profiling: True
executable-profiling: True
Nhưng nếu tôi cố gắng chạy thực thi của tôi với hồ sơ, tôi nhận được ...
[email protected]$ cabal run realtra-benchmark +RTS -p
cabal: the flag -p requires the program to be built with -prof
cabal:
cabal: Usage: <prog> <args> [+RTS <rtsopts> | -RTS <args>] ... --RTS <args>
<snip>
tôi nhận được câu trả lời tương tự nếu tôi cố gắng bỏ qua cabal: ./dist/dist-sandbox-c8599c64/build/realtra-benchmark/realtra-benchmark +RTS -p
.
Tất nhiên, thêm các -prof
cờ để GHC-Options:
trong file cabal tôi sẽ không làm việc:
[email protected]$ cabal build --ghc-options=-Werror && cabal test && cabal install
./realtra.cabal has been changed. Re-configuring with most recently used
options. If this fails, please run configure manually.
Resolving dependencies...
Configuring creatur-realtra-1.0.8...
Warning: 'ghc-options: -prof' is not necessary and will lead to problems when
used on a library. Use the configure flag --enable-library-profiling and/or
--enable-executable-profiling.
tôi con tôi không cần phải thêm những lá cờ vì họ đang ở trong tập tin cấu hình của tôi, nhưng chỉ trong trường hợp, tôi thử:
[email protected]$ cabal configure --enable-executable-profiling --enable-library-profiling
Resolving dependencies...
Configuring creatur-realtra-1.0.8...
[email protected]$ cabal build --ghc-options=-Werror && cabal test && cabal install
<snip>
[email protected]$ cabal run realtra-benchmark +RTS -p
cabal: the flag -p requires the program to be built with -prof
cabal:
cabal: Usage: <prog> <args> [+RTS <rtsopts> | -RTS <args>] ... --RTS <args>
<snip>
Tôi đang thiếu gì?
Bạn đã thử cách này: 'cabal run realtra-benchmark + RTS -p -RTS' – Sibi
Cờ' -RTS' chỉ cần thiết khi bạn đang theo dõi cờ không chạy. Nhưng chỉ để chắc chắn, tôi đã thử nó ngay bây giờ với '-RTS' ở cuối, và có lỗi tương tự. – mhwombat
Hãy thử 'cabal run realtra-benchmark - + RTS -p'. Tôi đoán là '+ RTS' được hiểu là đối số cho chính' thực thi cabal'. –