Từ 1 tới 4 trên tổng số 4 kết quả

Đề tài: Lỗi LNK2005: already defined in obj

  1. #1
    Ngày gia nhập
    06 2007
    Bài viết
    2

    Mặc định Lỗi LNK2005: already defined in obj

    Mọi người giải thích giúp mình sao bị lỗi khó hiểu như sau:
    Mình tạo mới một project đơn giản trong VC++ ở chế độ Win32 Console.
    Tạo mới 1 file utils.cpp có 3 hàm test sau:

    PHP Code:
    #include <iostream.h>
    void test1()
    {
        
    cout << "TEST 1 running" << endl;
    }
    void test2()
    {
        
    cout << "TEST 2 running" << endl;
    }
    void test3()
    {
        
    cout << "TEST 3 running" << endl;

    Sau do tao them 1 file main.cpp include file trên vào và chạy các hàm test đó:

    PHP Code:
    #include "utils.cpp"
    int main()
    {
        
    test1();
        
    test2();
        
    test3();
        return 
    0;

    Cuối cùng chạy Ctrl+F5 ra báo lỗi liên kết tùm lum:
    PHP Code:
    --------------------ConfigurationTest Win32 Debug--------------------
    Compiling...
    main.cpp
    utils
    .cpp
    Linking
    ...
    utils.obj error LNK2005"void __cdecl test1(void)" (?test1@@YAXXZalready defined in main.obj
    utils
    .obj error LNK2005"void __cdecl test2(void)" (?test2@@YAXXZalready defined in main.obj
    utils
    .obj error LNK2005"void __cdecl test3(void)" (?test3@@YAXXZalready defined in main.obj
    Debug
    /Test.exe fatal error LNK1169one or more multiply defined symbols found
    Error executing link
    .exe.

    Test.exe 4 error(s), 0 warning(s
    Kỳ lạ là nếu mình gộp hàm main vào file utils.cpp thì chạy ngon ơ, chả bị lỗi gì?
    Như vậy là sao nhỉ, ai giải thích và sửa lỗi giúp mình với?

    Còn đây là link down nguyên cái project ở trên:
    http://www.mediafire.com/?d2zaybm7hjp

  2. #2
    Ngày gia nhập
    08 2006
    Nơi ở
    TpHCM
    Bài viết
    202

    làm ơn tách ra file .h rồi include file.h

  3. #3
    Ngày gia nhập
    06 2007
    Bài viết
    2

    Trích dẫn Nguyên bản được gửi bởi nguyentuan2 Xem bài viết
    làm ơn tách ra file .h rồi include file.h
    Trời, nếu đổi đuôi vậy nói chi, đằng này ông thầy bắt phải để đuôi .cpp vậy mới ác.
    Ai còn cách giải quyết khác không vậy?

  4. #4
    Ngày gia nhập
    07 2007
    Bài viết
    41

    trong main khong include utils.cpp vào mà khai báo lại 3 hàm đó là extern
    Code:
      extern void test1();
     extern void test2();
     extern void test3();
      
     int main()
     {
         test1();
         test2();
         test3();
         return 0;
     }

Các đề tài tương tự

  1. Lỗi 2005 link error - already defined in trong C++/CLI
    Gửi bởi gachoai trong diễn đàn Thắc mắc lập trình Visual C++
    Trả lời: 0
    Bài viết cuối: 25-09-2013, 12:33 PM
  2. Lập trình C++ Lỗi Rune-time check failure - The variable is being used without being defined?
    Gửi bởi gemtones trong diễn đàn Thắc mắc lập trình C/C++/C++0x
    Trả lời: 1
    Bài viết cuối: 26-09-2011, 01:54 PM
  3. user-defined function with Xquery
    Gửi bởi tung_ct trong diễn đàn Thắc mắc chung
    Trả lời: 0
    Bài viết cuối: 17-08-2011, 04:11 PM
  4. sửa lỗi A local variable named 'tam' is already defined in this scop như thế nào?
    Gửi bởi bancalem trong diễn đàn Thắc mắc lập trình C#
    Trả lời: 1
    Bài viết cuối: 03-10-2010, 06:40 PM
  5. WINVER not defined. Defaulting to 0x0600 (Windows Vista)
    Gửi bởi MartSoft trong diễn đàn Thắc mắc lập trình C/C++/C++0x
    Trả lời: 1
    Bài viết cuối: 08-02-2010, 12:10 AM

Quyền hạn của bạn

  • Bạn không thể gửi đề tài mới
  • Bạn không thể gửi bài trả lời
  • Bạn không thể gửi các đính kèm
  • Bạn không thể chỉnh sửa bài viết của bạn