Создание статической библиотеки и связывание с ней с помощью premake

В настоящее время я пытаюсь узнать, как использовать premake 4, чтобы применить его к OpenGL sdk . В настоящее время я пытаюсь создать решение Visual Studio 2010, которое создает 2 проекта, один из которых является статической библиотекой, а другой содержит один основной исходный файл с основным методом.

Этот проект чрезвычайно прост и предназначен исключительно для предварительного обучения. В проекте статической библиотеки под названием Test у меня есть 2 файла: Test.h и Test.cpp. Test.h содержит прототип метода print (). print () просто выводит строку на консоль. Используя premake, я связал статическую библиотеку с основным проектом, а в main.cpp я включил файл Test.h. Моя проблема заключается в следующем: в VS2010 я получаю эту ошибку, когда пытаюсь построить:

1>main.obj : error LNK2019: unresolved external symbol "void __cdecl print(void)" (? print@@YAXXZ) referenced in function _main  
1>.\Main.exe : fatal error LNK1120: 1 unresolved externals

Вот мой код в 4 файлах, premake4.lua:

solution "HelloWorld"
    configurations {"Debug", "Release"}
project "Main"
    kind "ConsoleApp"
    language "C++"
    files{
        "main.cpp"

    }
    configuration "Debug"
        defines { "DEBUG" }
        flags { "Symbols" }

    configuration "Release"
        defines { "NDEBUG" }
        flags { "Optimize" } 
    links {"Test"}
project "Test"
    kind "StaticLib"
    language "C++"
    files{
        "test.h",
        "test.cpp"

    }

Test.cpp:

#include 

void print(){
    std::cout << "HELLO" << std::endl;
}

Test.h:

void print();

Main.cpp:

#include 
#include "test.h"
int main(){
    print();
    getch();
    return 0;
}   

Если вам интересно, почему там есть getch (), на моем компьютере консоль сразу закрывается, когда достигает return 0, поэтому я использую getch () для решения этой проблемы, что заставляет окно подождите, пока пользователь не нажмет другую клавишу. Любой совет по этому поводу был бы замечательным, потому что я просто не уверен, в чем проблема. Если это что-то простое, пожалуйста, не кастрируйте меня на этом, у меня очень мало опыта работы с предварительными и статическими библиотеками, поэтому я пытаюсь их изучить.

6
задан Bart 25 November 2011 в 17:23
поделиться