Cmake解决办法:
add_compile_options(-m32)
set(CMAKE_EXE_LINKER_FLAGS "${CMAKE_EXE_LINKER_FLAGS} -m32")
set(CMAKE_SHARED_LINKER_FLAGS "${CMAKE_SHARED_LINKER_FLAGS} -m32")
set(CMAKE_MODULE_LINKER_FLAGS "${CMAKE_MODULE_LINKER_FLAGS} -m32")
set(CMAKE_STATIC_LINKER_FLAGS "${CMAKE_STATIC_LINKER_FLAGS} -m32")
原报错:
CMakeFiles/test_time_cache.dir/test_time_cache.cc.o: In function `main':
/mnt/hgfs/main_work/temp_test/cpp_test/test_time_cache.cc:367: undefined reference to `operator new(unsigned int)'
CMakeFiles/test_time_cache.dir/test_time_cache.cc.o: In function `std::chrono::duration<long long, std::ratio<1ll, 1ll> > std::chrono::__duration_cast_impl<std::chrono::duration<long long, std::ratio<1ll, 1ll> >, std::ratio<1ll, 1000000ll>, long long, true, false>::__cast<long long, std::ratio<1ll, 1000000ll> >(std::chrono::duration<long long, std::ratio<1ll, 1000000ll> > const&)':
/usr/include/c++/4.8.2/chrono:162: undefined reference to `__divdi3'
CMakeFiles/test_time_cache.dir/test_time_cache.cc.o: In function `void std::this_thread::sleep_for<long long, std::ratio<1ll, 1000000ll> >(std::chrono::duration<long long, std::ratio<1ll, 1000000ll> > const&)':
/usr/include/c++/4.8.2/thread:281: undefined reference to `std::this_thread::__sleep_for(std::chrono::duration<long long, std::ratio<1ll, 1ll> >, std::chrono::duration<long long, std::ratio<1ll, 1000000000ll> >)'
CMakeFiles/test_time_cache.dir/test_time_cache.cc.o: In function `std::chrono::duration<long long, std::ratio<1ll, 1ll> > std::chrono::__duration_cast_impl<std::chrono::duration<long long, std::ratio<1ll, 1ll> >, std::ratio<1ll, 1000ll>, long long, true, false>::__cast<long long, std::ratio<1ll, 1000ll> >(std::chrono::duration<long long, std::ratio<1ll, 1000ll> > const&)':
/usr/include/c++/4.8.2/chrono:162: undefined reference to `__divdi3'
CMakeFiles/test_time_cache.dir/test_time_cache.cc.o: In function `void std::this_thread::sleep_for<long long, std::ratio<1ll, 1000ll> >(std::chrono::duration<long long, std::ratio<1ll, 1000ll> > const&)':
/usr/include/c++/4.8.2/thread:281: undefined reference to `std::this_thread::__sleep_for(std::chrono::duration<long long, std::ratio<1ll, 1ll> >, std::chrono::duration<long long, std::ratio<1ll, 1000000000ll> >)'
CMakeFiles/test_time_cache.dir/test_time_cache.cc.o: In function `__gnu_cxx::new_allocator<std::_Sp_counted_ptr_inplace<std::thread::_Impl<std::_Bind_simple<void (*())()> >, std::allocator<std::thread::_Impl<std::_Bind_simple<void (*())()> > >, (__gnu_cxx::_Lock_policy)2> >::allocate(unsigned int, void const*)':
/usr/include/c++/4.8.2/ext/new_allocator.h:104: undefined reference to `operator new(unsigned int)'