Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Tests linking fails with multiple undefined symbols #4

Open
barracuda156 opened this issue Jan 11, 2023 · 3 comments
Open

Tests linking fails with multiple undefined symbols #4

barracuda156 opened this issue Jan 11, 2023 · 3 comments

Comments

@barracuda156
Copy link

I get this failure at linking (tried gcc12 and gcc11, same result):

/opt/local/bin/g++-mp-11 -Wextra -Wall -Wpedantic -Ofast -std=c++17 -pthread -fopenmp  build/gtest_tlib_layout.o build/gtest_tlib_mtv.o build/gtest_tlib_shape.o build/gtest_tlib_strides.o build/gtest_tlib_ttv.o build/gtest_tlib_workload.o build/main.o -lgtest -lpthread -lgomp -lpthread -lm -lopenblas -o bin/main
Undefined symbols:
  "__ZN7testing8internal30GetBoolAssertionFailureMessageB5cxx11ERKNS_15AssertionResultEPKcS5_S5_", referenced from:
      __ZN30LayoutTest_inverse_layout_Test8TestBodyEv in gtest_tlib_layout.o
      __ZN30LayoutTest_inverse_layout_Test8TestBodyEv in gtest_tlib_layout.o
      __ZN30LayoutTest_inverse_layout_Test8TestBodyEv in gtest_tlib_layout.o
      __ZN30LayoutTest_inverse_layout_Test8TestBodyEv in gtest_tlib_layout.o
      __ZN28LayoutTest_inverse_mode_Test8TestBodyEv in gtest_tlib_layout.o
      __ZN28LayoutTest_inverse_mode_Test8TestBodyEv in gtest_tlib_layout.o
      __ZN29LayoutTest_output_layout_Test8TestBodyEv in gtest_tlib_layout.o
      __ZN29LayoutTest_output_layout_Test8TestBodyEv in gtest_tlib_layout.o
      __ZN29LayoutTest_output_layout_Test8TestBodyEv in gtest_tlib_layout.o
      __ZN32LayoutTest_generate_4_order_Test8TestBodyEv in gtest_tlib_layout.o
      __ZN32LayoutTest_generate_4_order_Test8TestBodyEv in gtest_tlib_layout.o
      __ZN32LayoutTest_generate_4_order_Test8TestBodyEv in gtest_tlib_layout.o
      __ZN32LayoutTest_generate_4_order_Test8TestBodyEv in gtest_tlib_layout.o
      __ZN32LayoutTest_generate_4_order_Test8TestBodyEv in gtest_tlib_layout.o
      __ZN32LayoutTest_generate_4_order_Test8TestBodyEv in gtest_tlib_layout.o
      __ZN32LayoutTest_generate_4_order_Test8TestBodyEv in gtest_tlib_layout.o
      __ZN32LayoutTest_generate_1_order_Test8TestBodyEv in gtest_tlib_layout.o
      __ZN32LayoutTest_generate_1_order_Test8TestBodyEv in gtest_tlib_layout.o
      __ZN32LayoutTest_generate_1_order_Test8TestBodyEv in gtest_tlib_layout.o
      __ZN32LayoutTest_generate_1_order_Test8TestBodyEv in gtest_tlib_layout.o
      __ZN32LayoutTest_generate_1_order_Test8TestBodyEv in gtest_tlib_layout.o
      __ZN32LayoutTest_generate_1_order_Test8TestBodyEv in gtest_tlib_layout.o
      __ZN32LayoutTest_generate_2_order_Test8TestBodyEv in gtest_tlib_layout.o
      __ZN32LayoutTest_generate_2_order_Test8TestBodyEv in gtest_tlib_layout.o
      __ZN32LayoutTest_generate_2_order_Test8TestBodyEv in gtest_tlib_layout.o
      __ZN32LayoutTest_generate_2_order_Test8TestBodyEv in gtest_tlib_layout.o
      __ZN32LayoutTest_generate_3_order_Test8TestBodyEv in gtest_tlib_layout.o
      __ZN32LayoutTest_generate_3_order_Test8TestBodyEv in gtest_tlib_layout.o
      __ZN32LayoutTest_generate_3_order_Test8TestBodyEv in gtest_tlib_layout.o
      __ZN32LayoutTest_generate_3_order_Test8TestBodyEv in gtest_tlib_layout.o
      __ZN31LayoutTest_is_valid_layout_Test8TestBodyEv in gtest_tlib_layout.o
      __ZN31LayoutTest_is_valid_layout_Test8TestBodyEv in gtest_tlib_layout.o
      __ZN23ShapeTest_is_valid_Test8TestBodyEv in gtest_tlib_shape.o
      __ZN23ShapeTest_is_valid_Test8TestBodyEv in gtest_tlib_shape.o
      __ZN23ShapeTest_is_valid_Test8TestBodyEv in gtest_tlib_shape.o
      __ZN23ShapeTest_is_valid_Test8TestBodyEv in gtest_tlib_shape.o
      __ZN23ShapeTest_is_valid_Test8TestBodyEv in gtest_tlib_shape.o
      __ZN23ShapeTest_is_valid_Test8TestBodyEv in gtest_tlib_shape.o
      __ZN23ShapeTest_is_valid_Test8TestBodyEv in gtest_tlib_shape.o
      __ZN24ShapeTest_is_tensor_Test8TestBodyEv in gtest_tlib_shape.o
      __ZN24ShapeTest_is_tensor_Test8TestBodyEv in gtest_tlib_shape.o
      __ZN24ShapeTest_is_scalar_Test8TestBodyEv in gtest_tlib_shape.o
      __ZN24ShapeTest_is_scalar_Test8TestBodyEv in gtest_tlib_shape.o
      __ZN24ShapeTest_is_vector_Test8TestBodyEv in gtest_tlib_shape.o
      __ZN24ShapeTest_is_vector_Test8TestBodyEv in gtest_tlib_shape.o
      __ZN24ShapeTest_is_matrix_Test8TestBodyEv in gtest_tlib_shape.o
      __ZN24ShapeTest_is_matrix_Test8TestBodyEv in gtest_tlib_shape.o
      __ZZN36ShapeTest_generate_output_shape_Test8TestBodyEvENKUlRKT_RKT0_jE_clISt6vectorIS8_IjSaIjEESaISA_EESC_EEDaS2_S5_j.constprop.0 in gtest_tlib_shape.o
      __ZZN36ShapeTest_generate_output_shape_Test8TestBodyEvENKUlRKT_RKT0_jE_clISt6vectorIS8_IjSaIjEESaISA_EESC_EEDaS2_S5_j.constprop.0 in gtest_tlib_shape.o
      __ZZN28StridesTest_TensorShape_Test8TestBodyEvENKUlmRKT_RKT0_RKT1_RKT2_E_clISt6vectorImSaImEESG_SG_SG_EEDamS2_S5_S8_SB_.constprop.0 in gtest_tlib_strides.o
      __ZZN28StridesTest_TensorShape_Test8TestBodyEvENKUlmRKT_RKT0_RKT1_RKT2_E_clISt6vectorImSaImEESG_SG_SG_EEDamS2_S5_S8_SB_.constprop.0 in gtest_tlib_strides.o
      __ZZN28StridesTest_TensorShape_Test8TestBodyEvENKUlmRKT_RKT0_RKT1_RKT2_E_clISt6vectorImSaImEESG_SG_SG_EEDamS2_S5_S8_SB_.constprop.0 in gtest_tlib_strides.o
      __ZN28StridesTest_ScalarShape_Test8TestBodyEv in gtest_tlib_strides.o
      __ZN28StridesTest_VectorShape_Test8TestBodyEv in gtest_tlib_strides.o
      __ZN28StridesTest_VectorShape_Test8TestBodyEv in gtest_tlib_strides.o
      __ZN28StridesTest_VectorShape_Test8TestBodyEv in gtest_tlib_strides.o
      __ZN28StridesTest_MatrixShape_Test8TestBodyEv in gtest_tlib_strides.o
      __ZN28StridesTest_MatrixShape_Test8TestBodyEv in gtest_tlib_strides.o
      __ZN28StridesTest_MatrixShape_Test8TestBodyEv in gtest_tlib_strides.o
      __ZN28StridesTest_MatrixShape_Test8TestBodyEv in gtest_tlib_strides.o
  "__ZN7testing8internal20StringStreamToStringEPNSt7__cxx1118basic_stringstreamIcSt11char_traitsIcESaIcEEE", referenced from:
      __ZN7testing8internal24CmpHelperFloatingPointEQIfEENS_15AssertionResultEPKcS4_T_S5_ in gtest_tlib_ttv.o
      __ZN7testing8internal24CmpHelperFloatingPointEQIfEENS_15AssertionResultEPKcS4_T_S5_ in gtest_tlib_ttv.o
  "__ZN7testing8internal9EqFailureEPKcS2_RKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESA_b", referenced from:
      __ZN7testing8internal18CmpHelperEQFailureIdmEENS_15AssertionResultEPKcS4_RKT_RKT0_ in gtest_tlib_mtv.o
      __ZN7testing8internal18CmpHelperEQFailureIfmEENS_15AssertionResultEPKcS4_RKT_RKT0_ in gtest_tlib_mtv.o
      __ZN7testing8internal11CmpHelperEQIjmEENS_15AssertionResultEPKcS4_RKT_RKT0_.constprop.0 in gtest_tlib_strides.o
      __ZN7testing8internal18CmpHelperEQFailureImmEENS_15AssertionResultEPKcS4_RKT_RKT0_ in gtest_tlib_strides.o
      __ZN7testing8internal18CmpHelperEQFailureImjEENS_15AssertionResultEPKcS4_RKT_RKT0_ in gtest_tlib_strides.o
      __ZN7testing8internal24CmpHelperFloatingPointEQIfEENS_15AssertionResultEPKcS4_T_S5_ in gtest_tlib_ttv.o
      __ZN7testing8internal18CmpHelperEQFailureIjjEENS_15AssertionResultEPKcS4_RKT_RKT0_ in gtest_tlib_workload.o
ld: symbol(s) not found
collect2: error: ld returned 1 exit status
make: *** [bin/main] Error 1

What do I miss? gtest and OpenBLAS are installed and work fine otherwise.

@barracuda156
Copy link
Author

Okay, this is needed to fix it: -D_GLIBCXX_USE_CXX11_ABI=0

@bassoy
Copy link
Owner

bassoy commented Jan 23, 2023

Hi @barracuda156

Thanks for your interest in my ttv implementation. The library tests only run on Linux (Ubuntu) systems.

@barracuda156
Copy link
Author

barracuda156 commented Jan 23, 2023

@bassoy Thank you for responding. I think it should work on any Unix too, there is nothing Linux-specific.

The flag I mentioned is a standard one, Macports passes it quite often. May be worth adding it to CMake lists compile definitions, conditional on Apple.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

2 participants