我有一个基于 C 和 C++ 的项目,我只是第一次构建和链接,它在执行时出现段错误。我尝试在 gdb 中运行它以获取回溯,并看到:
gdb) run
Starting program: /home/jon/controlix-code/bin/controlix
During startup program terminated with signal SIGSEGV, Segmentation fault.
(gdb) bt
No stack.
(gdb)
Run Code Online (Sandbox Code Playgroud)
我认为它在 main() 被调用之前崩溃了,但除此之外我没有任何线索。我在谷歌上找不到太多关于这种情况的信息,所以我想我会在这里问。
我正在尝试使用编译.adb文件gnatmake,并且该-o标志未产生我想要的目标文件名:
$ gnatmake --GCC=g++ -D bin/src/ghdl_grt/ -f -u -c src/ghdl_grt/grt-vstrings_io.adb -o bin/src/ghdl_grt/grt-vstrings_io.adb.o
g++ -c -Isrc/ghdl_grt/ -I- -o /home/jon/controlix-code/bin/src/ghdl_grt/grt-vstrings_io.o src/ghdl_grt/grt-vstrings_io.adb
Run Code Online (Sandbox Code Playgroud)
如您所见,它获得正确的路径,但文件名应以结尾,.adb.o并且仅以结尾.o。有任何想法吗?