前に、私は、メインの前にスタックトレースを取得しています:C++セグメンテーション違反メインGTEST
#include <gtest/gtest.h>
using namespace std;
int main(int argc, char **argv) {
::testing::InitGoogleTest(&argc, argv);
return RUN_ALL_TESTS();
}
スタックトレース:
プログラムは、信号SIGSEGV、セグメンテーションフォールトを受けました。 の0x0000000000000000 ()
#0 0x0000000000000000 in ??()
#1 0x00000000004e0b51 in std::locale::_S_initialize()()
#2 0x00000000004e0b93 in std::locale::locale()()
#3 0x000000000050d524 in std::ios_base::Init::Init()()
#4 0x0000000000401581 in __static_initialization_and_destruction_0 (__initialize_p=1, __priority=65535) at /usr/include/c++/4.9/iostream:74
#5 0x00000000004015b3 in _GLOBAL__sub_I_testsmain.cpp(void)() at ../../../bdf_cpp_tests/testsmain.cpp:18
#6 0x000000000053cdd7 in __libc_csu_init()
#7 0x000000000053c3de in generic_start_main()
#8 0x000000000053c62a in __libc_start_main()
#9 0x00000000004013f9 in _start()
これは私がこれが実行するコマンドであると信じてqmakeは5.7とg ++ 4.9.4
です:
g++ -c -m64 -pipe -std=gnu++11 -std=c++11 -Werror -pedantic -DTEST_RESOURCE_DIR=\"/home/eric/Documents/BDFCppLib/test_resources\" -DTEST_OUTPUT_DIR=\"/home/eric/Documents/BDFCppLib/test_resources/output\" -g -std=gnu++11 -Wall -W -fPIC -DDEBUG -I../../../bdf_cpp_tests -I/home/eric/Documents/BDFCppLib/shadow-ant/ubuntu64_gcc49_dev/bdf_cpp_tests -I../../../bdf_cpp_sdk/include -I../../../lib/ubuntu64_gcc49_dev/unpack/chunk_cpp/include -I../../../lib/ubuntu64_gcc49_dev/unpack/system/include -I/home/eric/Software/qt/5.7/gcc_64/mkspecs/linux-g++-64 -o testsmain.o ../../../bdf_cpp_tests/testsmain.cpp
g++ -o ../../../build/ubuntu64_gcc49_dev/bin/bdf_cpp_run_tests testsmain.o testutils.o -pthread -lrt -L/home/eric/Documents/BDFCppLib/build/ubuntu64_gcc49_dev/lib -static -lbdf -L/home/eric/Documents/BDFCppLib/lib/ubuntu64_gcc49_dev/unpack/chunk_cpp/lib -static -lchunk -L/home/eric/Documents/BDFCppLib/lib/ubuntu64_gcc49_dev/unpack/system/lib -lgtest
UPDATE 0: を私はこの問題に実行していますよUbuntu 16.04。私は14.04でVMを作成し、コードをコピーしてすべてを動かしました。 segfaultはありません。だから、これを引き起こしていると思われる16.04については何か違いがあります。
更新1: 私はこれがgoogletestによって引き起こされていると考え始めています。 14.04で動作する理由と16.06で動作しない理由は分かりません。 Googleテストを含み使用するものは、即時セグメンテーションのために実行できません。
qmakeファイルはどのように見えますか? – Samer
"これは実行するコマンドだと信じています。"あなたのクラッシュするgtestプログラムをリンクするためのコマンドではありません。 [mcve]が必要です。 –
ちょうど他の行が追加されましたが、それは役に立ちますか? –