Linux下C++的开发实践

来源:互联网 发布:苹果numbers是什么软件 编辑:程序博客网 时间:2024/06/08 10:54

参考链接:http://www.cnblogs.com/whiteyun/archive/2009/08/14/1545767.html

问题1:

didi@didi:~/AsProjectiveAsPossible-master$ gcc aaa.cpp
/tmp/ccEyoZAH.o:在函数‘main’中:
aaa.cpp:(.text+0x19):对‘std::allocator<char>::allocator()’未定义的引用
aaa.cpp:(.text+0x30):对‘std::basic_string<char, std::char_traits<char>, std::allocator<char> >::basic_string(char const*, std::allocator<char> const&)’未定义的引用
aaa.cpp:(.text+0x3c):对‘std::allocator<char>::~allocator()’未定义的引用
aaa.cpp:(.text+0x48):对‘std::basic_string<char, std::char_traits<char>, std::allocator<char> >::basic_string()’未定义的引用
aaa.cpp:(.text+0x6b):对‘std::string::operator=(char const*)’未定义的引用
aaa.cpp:(.text+0x77):对‘std::cout’未定义的引用
aaa.cpp:(.text+0x7c):对‘std::basic_ostream<char, std::char_traits<char> >& std::operator<< <std::char_traits<char> >(std::basic_ostream<char, std::char_traits<char> >&, char const*)’未定义的引用
aaa.cpp:(.text+0x81):对‘std::basic_ostream<char, std::char_traits<char> >& std::endl<char, std::char_traits<char> >(std::basic_ostream<char, std::char_traits<char> >&)’未定义的引用
aaa.cpp:(.text+0x89):对‘std::ostream::operator<<(std::ostream& (*)(std::ostream&))’未定义的引用
aaa.cpp:(.text+0x95):对‘std::cout’未定义的引用
aaa.cpp:(.text+0x9a):对‘std::basic_ostream<char, std::char_traits<char> >& std::operator<< <char, std::char_traits<char>, std::allocator<char> >(std::basic_ostream<char, std::char_traits<char> >&, std::basic_string<char, std::char_traits<char>, std::allocator<char> > const&)’未定义的引用
aaa.cpp:(.text+0x9f):对‘std::basic_ostream<char, std::char_traits<char> >& std::endl<char, std::char_traits<char> >(std::basic_ostream<char, std::char_traits<char> >&)’未定义的引用
aaa.cpp:(.text+0xa7):对‘std::ostream::operator<<(std::ostream& (*)(std::ostream&))’未定义的引用
aaa.cpp:(.text+0xb8):对‘std::basic_string<char, std::char_traits<char>, std::allocator<char> >::~basic_string()’未定义的引用
aaa.cpp:(.text+0xc4):对‘std::basic_string<char, std::char_traits<char>, std::allocator<char> >::~basic_string()’未定义的引用
aaa.cpp:(.text+0xd7):对‘std::allocator<char>::~allocator()’未定义的引用
aaa.cpp:(.text+0xf1):对‘std::basic_string<char, std::char_traits<char>, std::allocator<char> >::~basic_string()’未定义的引用
aaa.cpp:(.text+0x102):对‘std::basic_string<char, std::char_traits<char>, std::allocator<char> >::~basic_string()’未定义的引用
/tmp/ccEyoZAH.o:在函数‘__static_initialization_and_destruction_0(int, int)’中:
aaa.cpp:(.text+0x13b):对‘std::ios_base::Init::Init()’未定义的引用
aaa.cpp:(.text+0x14a):对‘std::ios_base::Init::~Init()’未定义的引用
/tmp/ccEyoZAH.o:(.eh_frame+0x13):对‘__gxx_personality_v0’未定义的引用
collect2: error: ld returned 1 exit status

是C++不是C!!

键入改为:

g++ aaa.cpp;


修改成循环拼接:

参考链接:http://stackoverflow.com/questions/1995053/const-char-concatenation

http://blog.sina.com.cn/s/blog_5436b2f40100pjzz.html

#include<iostream>
#include<string>
#include<stdio.h>
using namespace std;
int main()
{
    string s = "aab";
    //std::string s = a;
    std::string result;
    char buf[100];
    int i = 10;
    sprintf(buf,"%d",i);
    string temp(buf);
    //const char* b = a + "cd";
    result = s  + temp;
    //char* k = itoa(i)
    //string j = (char)i;
    //char result[100];
    //const char* b =
    //result = s+itoa(i);
    //cout<<a<<endl;
    cout<<s<<endl;
    cout<<result<<endl;
    return 0;
   
}

基础真的渣渣。


  for(int i = 100,int j =  i+20; i<360&&j<360 ;i+=20, j+=20){...}

问题2:

/home/didi/AsProjectiveAsPossible-master/src/APAP.cpp:270:20: error: expected unqualified-id before ‘int’
   for(int i = 100, int j =  i+20; i<360&&j<360 ;i+=20, j+=20)
                    ^
/home/didi/AsProjectiveAsPossible-master/src/APAP.cpp:270:20: error: expected ‘;’ before ‘int’
/home/didi/AsProjectiveAsPossible-master/src/APAP.cpp:270:48: error: expected ‘)’ before ‘;’ token
   for(int i = 100, int j =  i+20; i<360&&j<360 ;i+=20, j+=20)
                                                ^
/home/didi/AsProjectiveAsPossible-master/src/APAP.cpp:270:49: error: ‘i’ was not declared in this scope
   for(int i = 100, int j =  i+20; i<360&&j<360 ;i+=20, j+=20)
                                                 ^
/home/didi/AsProjectiveAsPossible-master/src/APAP.cpp:270:56: error: ‘j’ was not declared in this scope
   for(int i = 100, int j =  i+20; i<360&&j<360 ;i+=20, j+=20)
                                                        ^
/home/didi/AsProjectiveAsPossible-master/src/APAP.cpp:270:61: error: expected ‘;’ before ‘)’ token
   for(int i = 100, int j =  i+20; i<360&&j<360 ;i+=20, j+=20)
                                                             ^
make[2]: *** [CMakeFiles/APAP.dir/src/APAP.cpp.o] 错误 1
make[1]: *** [CMakeFiles/APAP.dir/all] 错误 2
make: *** [all] 错误 2

不能在for循环第一个分号处同时定义两个变量,改成:

int i,j;
for(i = 100, j =  i+20; i<360&&j<360 ;i+=20, j+=20){...}

问题3:

didi@didi:~/AsProjectiveAsPossible-master$ ./APAP
num kp1: 3987
num kp2: 4182
num match: 1086
inlier: 575
img1/media/didi/DONT PUT IT HERE/Documents and Settings/Administrator/Documents/maya/projects/default/images/tmp/sc16_cam007_low/_test_1_L_220.127.tif

img2/home/didi/AsProjectiveAsPossible-master/image/set2/Global.tif

num kp1: 0
num kp2: 9582
num match: 0
APAP: /usr/include/eigen3/Eigen/src/Core/Redux.h:202: static Eigen::internal::redux_impl<Func, Derived, 3, 0>::Scalar Eigen::internal::redux_impl<Func, Derived, 3, 0>::run(const Derived&, const Func&) [with Func = Eigen::internal::scalar_sum_op<float>; Derived = Eigen::Block<Eigen::Matrix<float, -1, -1>, -1, 1, true>; Eigen::internal::redux_impl<Func, Derived, 3, 0>::Scalar = float]: Assertion `size && "you are using an empty matrix"' failed.
已放弃 (核心已转储)




0 0