Closed GoogleCodeExporter closed 9 years ago
/tmp/tmpxft_00004d6d_00000000-12_example.o: In function
`VariableUnitTest<TestPairScan, unittest::type_list<char, short, int,
unittest::null_type, unittest::null_type, unittest::null_type,
unittest::null_type, unittest::null_type, unittest::null_type,
unittest::null_type, unittest::null_type, unittest::null_type,
unittest::null_type, unittest::null_type, unittest::null_type,
unittest::null_type, unittest::null_type, unittest::null_type,
unittest::null_type, unittest::null_type> >::run()':
tmpxft_00004d6d_00000000-1_example.cudafe1.cpp:(.text._ZN16VariableUnitTestI12Te
stPairScanN8unittest9type_listIcsiNS1_9null_typeES3_S3_S3_S3_S3_S3_S3_S3_S3_S3_S
3_S3_S3_S3_S3_S3_EEE3runEv[VariableUnitTest<TestPairScan,
unittest::type_list<char, short, int, unittest::null_type, unittest::null_type,
unittest::null_type, unittest::null_type, unittest::null_type,
unittest::null_type, unittest::null_type, unittest::null_type,
unittest::null_type, unittest::null_type, unittest::null_type,
unittest::null_type, unittest::null_type, unittest::null_type,
unittest::null_type, unittest::null_type, unittest::null_type> >::run()]+0x12):
undefined reference to `get_test_sizes()'
/tmp/tmpxft_00004d6d_00000000-12_example.o: In function
`VariableUnitTest<TestPairScan, unittest::type_list<char, short, int,
unittest::null_type, unittest::null_type, unittest::null_type,
unittest::null_type, unittest::null_type, unittest::null_type,
unittest::null_type, unittest::null_type, unittest::null_type,
unittest::null_type, unittest::null_type, unittest::null_type,
unittest::null_type, unittest::null_type, unittest::null_type,
unittest::null_type, unittest::null_type> >::VariableUnitTest()':
tmpxft_00004d6d_00000000-1_example.cudafe1.cpp:(.text._ZN16VariableUnitTestI12Te
stPairScanN8unittest9type_listIcsiNS1_9null_typeES3_S3_S3_S3_S3_S3_S3_S3_S3_S3_S
3_S3_S3_S3_S3_S3_EEEC1Ev[VariableUnitTest<TestPairScan,
unittest::type_list<char, short, int, unittest::null_type, unittest::null_type,
unittest::null_type, unittest::null_type, unittest::null_type,
unittest::null_type, unittest::null_type, unittest::null_type,
unittest::null_type, unittest::null_type, unittest::null_type,
unittest::null_type, unittest::null_type, unittest::null_type,
unittest::null_type, unittest::null_type, unittest::null_type>
>::VariableUnitTest()]+0x2f): undefined reference to `UnitTest::UnitTest(char
const*)'
collect2: ld returned 1 exit status
make: *** [all] Error 1
Original comment by vinitha....@gmail.com
on 12 Nov 2010 at 5:15
This is not a bug. testframework.o must be linked against.
Original comment by jaredhoberock
on 12 Nov 2010 at 5:43
Could you please tell me what is testframework.o and how should it be linked? I
did not require this to compile any other files?
Original comment by vinitha....@gmail.com
on 12 Nov 2010 at 6:11
Ok, i linked teatframework.h in the pair_scan code and now i get the following
error
/tmp/tmpxft_00004fa0_00000000-12_example.o: In function
`VariableUnitTest<TestPairScan, unittest::type_list<char, short, int,
unittest::null_type, unittest::null_type, unittest::null_type,
unittest::null_type, unittest::null_type, unittest::null_type,
unittest::null_type, unittest::null_type, unittest::null_type,
unittest::null_type, unittest::null_type, unittest::null_type,
unittest::null_type, unittest::null_type, unittest::null_type,
unittest::null_type, unittest::null_type> >::run()':
tmpxft_00004fa0_00000000-1_example.cudafe1.cpp:(.text._ZN16VariableUnitTestI12Te
stPairScanN8unittest9type_listIcsiNS1_9null_typeES3_S3_S3_S3_S3_S3_S3_S3_S3_S3_S
3_S3_S3_S3_S3_S3_EEE3runEv[VariableUnitTest<TestPairScan,
unittest::type_list<char, short, int, unittest::null_type, unittest::null_type,
unittest::null_type, unittest::null_type, unittest::null_type,
unittest::null_type, unittest::null_type, unittest::null_type,
unittest::null_type, unittest::null_type, unittest::null_type,
unittest::null_type, unittest::null_type, unittest::null_type,
unittest::null_type, unittest::null_type, unittest::null_type> >::run()]+0x12):
undefined reference to `get_test_sizes()'
/tmp/tmpxft_00004fa0_00000000-12_example.o: In function
`VariableUnitTest<TestPairScan, unittest::type_list<char, short, int,
unittest::null_type, unittest::null_type, unittest::null_type,
unittest::null_type, unittest::null_type, unittest::null_type,
unittest::null_type, unittest::null_type, unittest::null_type,
unittest::null_type, unittest::null_type, unittest::null_type,
unittest::null_type, unittest::null_type, unittest::null_type,
unittest::null_type, unittest::null_type> >::VariableUnitTest()':
tmpxft_00004fa0_00000000-1_example.cudafe1.cpp:(.text._ZN16VariableUnitTestI12Te
stPairScanN8unittest9type_listIcsiNS1_9null_typeES3_S3_S3_S3_S3_S3_S3_S3_S3_S3_S
3_S3_S3_S3_S3_S3_EEEC1Ev[VariableUnitTest<TestPairScan,
unittest::type_list<char, short, int, unittest::null_type, unittest::null_type,
unittest::null_type, unittest::null_type, unittest::null_type,
unittest::null_type, unittest::null_type, unittest::null_type,
unittest::null_type, unittest::null_type, unittest::null_type,
unittest::null_type, unittest::null_type, unittest::null_type,
unittest::null_type, unittest::null_type, unittest::null_type>
>::VariableUnitTest()]+0x2f): undefined reference to `UnitTest::UnitTest(char
const*)'
collect2: ld returned 1 exit status
make: *** [all] Error 1
Original comment by vinitha....@gmail.com
on 12 Nov 2010 at 6:21
My code is as follows:
#include <thrust/iterator/transform_iterator.h>
#include <thrust/iterator/counting_iterator.h>
#include <thrust/device_vector.h>
#include <thrust/reduce.h>
#include <thrust/functional.h>
#include <iostream>
#include <iterator>
#include <string>
#include <unittest/unittest.h>
#include <unittest/testframework.h>
#include <thrust/transform_scan.h>
#include <thrust/iterator/counting_iterator.h>
#include <thrust/iterator/iterator_traits.h>
#include <thrust/pair.h>
#include <thrust/transform.h>
#include <thrust/scan.h>
struct make_pair_functor
{
template<typename T1, typename T2>
__host__ __device__
thrust::pair<T1,T2> operator()(const T1 &x, const T2 &y)
{
return thrust::make_pair(x,y);
} // end operator()()
}; // end make_pair_functor
struct add_pairs
{
template <typename Pair1, typename Pair2>
__host__ __device__
Pair1 operator()(const Pair1 &x, const Pair2 &y)
{
return thrust::make_pair(x.first + y.first, x.second + y.second);
} // end operator()
}; // end add_pairs
template <typename T>
struct TestPairScan
{
void operator()(const size_t n)
{
typedef thrust::pair<T,T> P;
thrust::host_vector<T> h_p1 = unittest::random_integers<T>(n);
thrust::host_vector<T> h_p2 = unittest::random_integers<T>(n);
thrust::host_vector<P> h_pairs(n);
thrust::host_vector<P> h_output(n);
// zip up pairs on the host
thrust::transform(h_p1.begin(), h_p1.end(), h_p2.begin(), h_pairs.begin(), make_pair_functor());
thrust::device_vector<T> d_p1 = h_p1;
thrust::device_vector<T> d_p2 = h_p2;
thrust::device_vector<P> d_pairs = h_pairs;
thrust::device_vector<P> d_output(n);
P init = thrust::make_pair(13,13);
// scan with plus
thrust::inclusive_scan(h_pairs.begin(), h_pairs.end(), h_output.begin(), add_pairs());
thrust::inclusive_scan(d_pairs.begin(), d_pairs.end(), d_output.begin(), add_pairs());
ASSERT_EQUAL_QUIET(h_output, d_output);
thrust::exclusive_scan(h_pairs.begin(), h_pairs.end(), h_output.begin(), init, add_pairs());
thrust::exclusive_scan(d_pairs.begin(), d_pairs.end(), d_output.begin(), init, add_pairs());
ASSERT_EQUAL_QUIET(h_output, d_output);
// scan with maximum (thrust issue #69)
thrust::inclusive_scan(h_pairs.begin(), h_pairs.end(), h_output.begin(), thrust::maximum<P>());
thrust::inclusive_scan(d_pairs.begin(), d_pairs.end(), d_output.begin(), thrust::maximum<P>());
ASSERT_EQUAL_QUIET(h_output, d_output);
thrust::exclusive_scan(h_pairs.begin(), h_pairs.end(), h_output.begin(), init, thrust::maximum<P>());
thrust::exclusive_scan(d_pairs.begin(), d_pairs.end(), d_output.begin(), init, thrust::maximum<P>());
ASSERT_EQUAL_QUIET(h_output, d_output);
}
};
VariableUnitTest<TestPairScan, unittest::type_list<char,short,int> >
TestPairScanInstance;
Original comment by vinitha....@gmail.com
on 12 Nov 2010 at 6:26
Original issue reported on code.google.com by
vinitha....@gmail.com
on 12 Nov 2010 at 4:42